AINumbers Fintech Intelligence Suite
Server Details
530 MCP tools across 561 fintech tools: ChainGraph AP2 decisions, execution_hash. Zero PII.
- Status
- Healthy
- Uptime
- 99.8% over 51 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- PostOakLabs/ainumbers-mcp-apps
- GitHub Stars
- 2
- Server Listing
- ainumbers-mcp-apps
TDQS
Scored across 730 tools
With 730 tools, many validators/checkers overlap heavily (e.g., check_genius_reserve_disclosure vs check_genius_reserve_disclosure_conformance, validate_a2a_agent_card vs verify_a2a_agent_card, classify_settlement_asset_finality vs classify_settlement_finality). The detailed descriptions help somewhat, but the set still creates substantial misselection risk.
All names are snake_case and mostly readable, but there is no single predictable pattern. Verb_noun names (compute_*, validate_*, build_*) mix with noun_verb or noun_noun forms (acdc_said_check, camt053_parse, recon_match, otlp_span_receipt, ha_bundle_export).
730 tools is an extreme mismatch for any single MCP server. Even with discovery helpers like find_tool, the surface is far too large for reliable agent selection or maintenance.
The suite covers an enormous fintech/regulatory computation surface, including validation, verification, artifact chaining, discovery, and receipts. Some lifecycle operations may be missing, but there are no obvious dead ends for the stated purpose.
Available Tools
730 toolsacdc_said_checkRecompute ACDC / vLEI credential SAIDs (structural integrity)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| credential | Yes | ACDC / vLEI credential JSON object (v, d, i, ri, s, a, e, r fields). |
TDQS
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.
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.
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.
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.
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.
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 AdjudicatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("adjudicate_emir_reconciliation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: transient processing with no storage/logging, the compute:auto vs browser delegation semantics, and the exported AP2 artifact with execution_hash. This is real behavioral disclosure that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening identifies the resource, but the middle is dense infrastructure boilerplate (kernel registration, browser delegation URL, a 64-char FV-status filename) that is not front-loaded toward the agent's actual decision. It is sized reasonably but much of it does not earn its place for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, opaque policy_parameters object and no output schema, the description leaves the core decision semantics unexplained ('See the tool's manifest for field names') and points to describe_tool for the return shape rather than stating it. An agent cannot determine what inputs the adjudication function needs or what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description's compute-mode text largely duplicates the schema's own enum description verbatim rather than extending it. It adds no meaning for parent_hashes/parent_tool_ids/policy_parameters, and defers policy 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('EMIR Trade-Repository Reconciliation Adjudicator') and then spends nearly all its words on OpenChainGraph infrastructure (compute modes, kernel registration, FV-status receipts). It never says what 'adjudication' actually decides — e.g. which breaks are resolvable — so an agent cannot distinguish this from siblings like reconcile_emir_pairing or age_emir_reconciliation_breaks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is guidance on compute modes and a data-handling constraint ('Use synthetic or anonymised inputs only'), but no statement of when to invoke this tool versus the many EMIR reconciliation siblings. The 'Output feeds: art-483-emir-break-ageing' line hints at chain position but gives no selection criteria.
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 AgeingCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("age_emir_reconciliation_breaks").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 execution, compute:'auto' server-side vs compute:'browser' delegation, transient processing with no storage/logging/retention, synthetic-inputs-only constraint, and AP2 artifact export with execution_hash. This meaningfully lowers the agent's uncertainty about side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Most of the text is template boilerplate (compute-binding paragraph, FV-status URL, offline-receipt claim) that is not specific to this tool, while the actual ageing semantics are never stated. The domain-relevant content is a small fraction of the whole, so sentences do not each earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Operational/execution context (compute modes, provenance, transient processing) is thorough and the output schema is delegated to describe_tool, so return values need not be explained. However, for a 4-parameter compute node with nested policy_parameters, the description never explains what the tool actually computes (ageing buckets, thresholds, output form), leaving a domain gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 in the schema and defers policy_parameters field names to 'the tool's manifest', adding little 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title convey a specific verb+resource (ageing EMIR reconciliation breaks), but the description body never restates or expands the domain function; it opens with 'OpenChainGraph compute node (attestation_mandate)' boilerplate. It does name the upstream artifact (art-482-emir-recon-adjudicator), which gives some differentiation from siblings like reconcile_emir_pairing, but the core purpose is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of what input is expected (breaks from the adjudicator?), and no comparison against the many EMIR siblings (reconcile_emir_pairing, adjudicate_emir_reconciliation, validate_emir_trade_report). Only 'Consumes upstream artifacts from: art-482...' hints at position in a pipeline.
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 SandboxARead-onlyIdempotentInspect
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). Output schema: call describe_tool("agentic_mandate_sandbox").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior, and the description reinforces this by adding valuable context: browser-based, client-side only, zero PII, zero network, and inputs applied via the AIN Bridge. This goes beyond the annotations and clearly sets expectations about side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and includes useful constraints and a pointer to the output schema. It is slightly redundant—'zero PII' and 'client-side' are each stated twice—but the extra repetition is minor and the overall structure is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a sandbox simulation tool with a generic input map and no output schema, the description covers the key behavioral aspects, the policy dimensions, the client-side environment, and explicitly directs the agent to call describe_tool for the output schema. It is not fully self-contained on exact input element IDs and output field layout, but the pointer compensates substantially.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage on the generic 'inputs' map, so the baseline is 3. The description adds value by naming the semantic categories of inputs (spend caps, MCC allowlists, velocity throttles, approval thresholds) and explaining that inputs are applied via AIN Bridge prefill, which helps the agent understand what to populate even without an explicit schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('Simulate agent payment policies'), a concrete domain ('tokenized A2A corridors'), and concrete policy dimensions ('spend caps, MCC allowlists, velocity throttles, approval thresholds'). It also distinguishes the tool by noting the browser-based sandbox behavior and Policy Mandate export, which separates it from vaguely similar siblings like simulate_agent_spend_policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when the tool is appropriate: simulating payment policies with synthetic transactions in a tokenized A2A corridor and exporting a Policy Mandate. It does not explicitly name alternatives or state when not to use this tool, but the context is strong enough for an agent to infer the intended use case.
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 AggregatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("aggregate_cbam_precursor_emissions").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful context beyond them: deterministic execution, server-vs-browser compute delegation, transient non-retention of inputs, and export of an AP2 artifact with execution_hash for provenance. These are substantive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with redundant boilerplate ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'), then piles on URL, FV-status hash, sibling artifact IDs and a describe_tool pointer. Useful facts are present but buried behind infrastructure metadata rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers execution, provenance and data handling reasonably well, but the decision-function parameters (policy_parameters) remain opaque and no return shape is described beyond 'call describe_tool'. It is adequate but leaves the agent short of what is needed to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 explicitly defers field names to 'the tool's manifest', so it adds a pointer but little else beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('CBAM Precursor-Emissions Aggregator') and tags it as an OpenChainGraph compute node under the compliance_mandate family. However it never distinguishes this aggregator from close siblings such as calculate_cbam_embedded_emissions or resolve_cbam_default_value, so the agent cannot tell when aggregation is the right step versus the calculator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states an input constraint ('Use synthetic or anonymised inputs only') and workflow context (consumes art-68 upstream, feeds art-69 and cry-04), which implies usage. But there is no explicit when-to-use versus the CBAM calculator siblings, so routing guidance 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.
aggregate_execution_receiptsAgent-Action Audit-Trail AggregatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("aggregate_execution_receipts").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior: inputs are processed transiently and not stored/logged/retained, execution is deterministic, and browser mode returns a delegation URL instead of a result. That is meaningful disclosure beyond structured fields, though it never explains what the exported artifact contains beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats itself ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node'), and the URL plus FV-status hash path consume a full sentence with little selection value. The substantive content (compute routing, transient processing, chain provenance) is present and reasonably ordered, but the block is longer than the decision-relevant information warrants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema tool the description does point agents to describe_tool for the output shape and covers chaining, privacy, and compute routing. The critical gap is that the core function remains opaque: policy_parameters is deferred to an external 'manifest', so an agent cannot tell what the aggregation actually computes or what to pass.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute enum semantics. The description largely repeats the compute-mode explanation and adds nothing new for parent_hashes/parent_tool_ids, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line identify this as an audit-trail aggregator that exports an AP2 artifact carrying execution_hash, which is a concrete verb+resource. It also positions itself in the chain (consumes art-30/art-31/art-33/cry-04, feeds ptg-01), which helps separate it from sibling receipt/validation tools. However, the actual aggregation logic ('decision function', 'policy_parameters') is never described, so an agent knows the output shape but not what is being computed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives operational rules (default compute:'auto', compute:'browser' forces delegation, gpu:true always delegates, use synthetic inputs only) but never states when to choose this tool over alternatives such as validate_agent_audit_trail or validate_audit_trail_completeness. Usage is implied through the compute-mode semantics rather than stated as guidance.
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 AggregatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("aggregate_ownership_50pct").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior beyond them: server vs. browser execution and the browser delegation URL, GPU-node delegation, transient processing with no storage/logging/retention, and emission of an AP2 artifact carrying execution_hash for chain provenance. It does not, however, describe failure modes or what the returned artifact contains structurally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with operational boilerplate — the FV-status receipt hash, the art URL, and a paragraph-length explanation of compute binding that duplicates the schema — while the one thing an agent needs (what the tool computes) is absent. The most decision-relevant 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a node with opaque policy_parameters and no output schema, the description does supply provenance (upstream/downstream artifacts), privacy handling, and a pointer to describe_tool for the output contract, which partially compensates. It remains incomplete on the core semantics of the 50% rule and on what the AP2 artifact returned actually contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 repeats the compute-binding semantics the schema states. It adds nothing about the decision-critical policy_parameters object, explicitly deferring 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The text restates the title ("Ownership 50%-Rule Aggregator") and labels it a "compute node (compliance_mandate)" without ever stating what the 50% ownership rule computation actually does, what it decides, or what domain inputs it consumes. Pipeline references (art-90 upstream, art-92/cry-05 downstream) hint at placement but not function, so an agent cannot distinguish it from siblings like compute_cdd_ownership_25pct on capability grounds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage direction is a privacy constraint ("Use synthetic or anonymised inputs only") and the compute-mode mechanics. There is no when-to-use/when-not guidance, no prerequisite or input-preparation advice, and no routing to alternative ownership or compliance tools among the many siblings.
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 AggregatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("aggregate_reputation_score").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds real value beyond them: deterministic computation, transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash for chain provenance. The compute/GPU delegation semantics are also disclosed, though they 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with duplicated framing ('Provable Reputation Score Aggregator: OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node.'), an inline documentation URL, and a long FV-status receipt hash that is noise for tool selection, before the first operationally useful clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters and no output schema, the description never says what the reputation score is computed over or what the response contains beyond 'an AP2 artifact with execution_hash'. The actual aggregation semantics an agent needs are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute-mode restatement adds nothing not already in the schema. The chaining intent of parent_hashes/parent_tool_ids is only obliquely implied by the 'chain provenance' phrase, and policy_parameters fields are explicitly deferred to an external manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('Provable Reputation Score Aggregator: OpenChainGraph compute node') and then spends its budget on infrastructure boilerplate rather than what the tool actually aggregates, from which inputs, or what the resulting reputation score represents. An agent cannot tell from the text why this differs from siblings like aggregate_execution_receipts or score_credit_default_risk 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs. when-not guidance and no naming of any alternative tool. The compute-mode paragraph is execution-mechanics guidance, not usage guidance, and 'use synthetic or anonymised inputs only' is a data-safety constraint 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.
aggregate_solvency2_scr_modulesSolvency II SCR Standard-Formula Module AggregatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("aggregate_solvency2_scr_modules").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior beyond them: transient processing with no storage/logging/retention, a requirement to use synthetic or anonymised inputs only, server-vs-browser execution semantics, and an exported AP2 artifact carrying execution_hash for chain provenance. That is substantive operational context, though the FV-status receipt aside is largely procedural noise.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is dense with infrastructure boilerplate, repeats the phrase 'OpenChainGraph compute node' twice, and buries the task-relevant sentence (what it aggregates) behind provenance, FV-status, and output-schema instructions. It is over-specified in low-value areas and under-specified on the domain logic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description explicitly directs the agent to call describe_tool for the output shape and covers provenance, privacy, and execution mode. What remains thin is the domain side: what policy_parameters must contain and how SCR modules are combined, both deferred to an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates the compute-mode semantics rather than adding syntax or field-level detail, and it explicitly defers policy_parameters field names to the manifest, so it adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line state a specific verb+resource: aggregating Solvency II SCR standard-formula modules into a decision-function output, and it names the downstream artifact (art-180-solvency2-scr-ratio-calculator), which distinguishes it from calculate_solvency2_scr_ratio. However, the actual purpose is embedded inside heavy infrastructure boilerplate rather than front-loaded, so it is clear but not crisp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit when-to-use or when-not-to-use guidance relative to siblings such as calculate_solvency2_scr_ratio, compute_rwa_scenarios, or other Solvency II tools. It describes compute-mode mechanics, which is configuration rather than usage context, leaving the agent to infer applicability from the name.
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 AggregatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: the compute:'auto' vs 'server' vs 'browser' execution model, the GPU delegation rule, transient no-storage processing, and the AP2 artifact/execution_hash export for provenance. This is substantive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode explanation is repeated verbatim from the schema, and the FV-status receipt paragraph is tangential metadata. Front-loaded with the tool identity, but several sentences do not directly 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A 4-param tool (0 required) with a nested object, no output schema and full annotation coverage. The description covers execution semantics and data handling reasonably well, but never explains what the aggregation actually outputs or the required shape of policy_parameters, leaving the core computation under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 re-explains compute mode but adds little on 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name indicate a liability aggregation compute node, but the description never states in plain terms what the tool actually computes (e.g., a Merkle-sum-tree liability total). 'OpenChainGraph compute node (cryptographic_mandate)' is opaque jargon rather than a specific verb+resource statement, leaving the actual purpose inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It does disclose one downstream consumer ('Output feeds: art-620-summa-mst-inclusion-checker') and a data-handling precondition ('Use synthetic or anonymised inputs only'), which implies appropriate use. However there is no explicit when-to-use guidance or comparison against the many sibling aggregation/compute tools.
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 AggregatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("aggregate_taxonomy_kpi_gar").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful behavior: inputs are processed transiently and not stored/logged/retained, the node is deterministic, compute:'browser' returns a delegation URL instead of computing, and it exports an AP2 artifact carrying execution_hash. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the tool's identity well, but the body is padded with boilerplate: a documentation URL, a full FV-status hash path, and a meta-explanation that the receipt 'verifies offline whether or not that file is ever fetched.' That paragraph does not help an agent decide or invoke anything.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema but an explicit pointer to describe_tool for it, the description covers chaining, compute binding, data handling, and provenance export. The remaining gap is that policy_parameters is left as 'see the tool's manifest,' so an agent cannot see the actual field names from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 that the schema already gives, and adds only the note that parent_hashes map to chain.parent_hashes in the export. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with the title restated ('Taxonomy KPI & Green Asset Ratio Aggregator: OpenChainGraph compute node'), which is largely tautological, but it does add scope-relevant facts: it names the upstream artifact it consumes (art-73-taxonomy-alignment-scorer) and the downstream consumer (cry-05...), which helps distinguish it from siblings. It never explains what the aggregation actually computes or what shape the policy_parameters input takes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 chaining context (parent_hashes from upstream AP2 artifacts), which implies how it fits into a chain. However there is no explicit when-to-use/when-not statement or named alternative among the many sibling aggregate_*/compute_* tools.
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 AllocationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("allocate_ihb_interest").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior: transient processing with no storage/logging/retention, server vs browser delegation semantics including gpu:true always delegating, and export of an AP2 artifact carrying execution_hash for chain provenance. This is well beyond what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is a dense run-on of boilerplate including a full FV-status hash and a raw URL. Several clauses earn their place (compute modes, data handling), yet the receipt/URL material is filler that bloats the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description helpfully points to describe_tool for the output shape, and it covers compute mode, data-retention posture, provenance export, and upstream chaining dependencies. For a compute node with a nested policy_parameters object, this is close to complete, though the actual computation is never characterized.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with four documented parameters, so the schema already carries the parameter semantics. The description only restates compute-mode behavior (which the schema documents) and defers policy_parameters field names to the manifest, adding little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as an 'IHB Interest Allocation' OpenChainGraph compute node in the 'analytics_mandate' family, which gives a verb+resource frame. However, it never explains what the allocation computes or what 'IHB' refers to, so an agent cannot distinguish the actual operation from sibling compute nodes without opening the manifest. The classification label 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied by the upstream artifact list (art-259-compute-multilateral-netting, art-262-validate-ebam-acmt-flow), suggesting this tool runs downstream in a chain, and it mandates synthetic/anonymised inputs. There is no explicit statement of when to choose this tool over alternatives or any exclusions.
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 AmortizationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("amortize_asc606_commissions").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine behavior: inputs are processed transiently and not stored or logged, a browser delegation URL is returned for compute:'browser'/gpu:true, and an AP2 artifact with execution_hash is exported for provenance. These are real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is padded with generic OpenChainGraph scaffolding, a full FV-status URL and 64-char hash, and repeated compute-mode text that duplicates the schema, all before any task-specific guidance. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compliance compute node with no output schema, the description covers storage, compute modes, provenance, and upstream chaining, and defers output structure to describe_tool. The significant remaining gap is the policy_parameters object, whose field names are deferred to an external manifest, leaving core input semantics unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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, and it adds little on parent_hashes ordering or the opaque policy_parameters object. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening states a specific verb+resource: amortization of ASC 340-40 commissions, and the title confirms the domain. However, it never distinguishes itself from near-siblings like build_amortization_schedule, compute_deterministic_amortization_schedule, or reconcile_commission_statement, so a sibling-differentiation gap remains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the upstream artifact (art-266-reconcile-commission-statement), which implies context. But it never states when to prefer this tool over the other commission/amortization siblings, 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.
analyze_dc_vs_lc_cost_benefitDocumentary Collection vs Letter of Credit Cost-BenefitCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("analyze_dc_vs_lc_cost_benefit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
On top of the annotations (readOnly/idempotent/non-destructive), the description discloses real behavior: default server-side execution on Cloudflare Workers, compute:"browser" returning a delegation URL, transient processing with no storage or logging, and export of an AP2 artifact carrying execution_hash. That is meaningful operational context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate, a URL, and a full FV-status receipt hash, while the substantive purpose and output are never stated. The subject is buried behind compute-binding and provenance machinery rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a nested-input, no-output-schema tool, so the description should clarify what the cost-benefit decision function consumes and returns. Instead it defers field names to 'the tool's manifest' and never describes the analytical result, leaving the core substance undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 paraphrases the compute-mode semantics already in the schema and adds nothing about the decision-function fields inside policy_parameters, landing at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence restates the title ('Documentary Collection vs Letter of Credit Cost-Benefit') and tags it as an OpenChainGraph compute node in the compliance_mandate category. An agent can infer the subject is a DC-vs-LC cost comparison, but nothing explains what the analysis computes or how it differs from siblings like compute_ltc_funding_comparator or compare_receivables_finance_economics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to any of the many related trade-finance siblings. The only advisory text ('Use synthetic or anonymised inputs only') is a data-handling constraint, 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.
analyze_prediction_marketPrediction Market AnalyzerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("analyze_prediction_market").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 bar is lower. The description adds genuinely useful context: transient processing with no storage/logging, a requirement to use synthetic or anonymised inputs, server-vs-browser execution semantics, and an AP2 artifact with execution_hash for provenance. It still omits rate limits, error modes, and what the artifact contains, so it is above-neutral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is buried under infrastructure boilerplate, internal URLs, an FV-status hash, and a pointer to the sibling tool describe_tool. Multiple sentences repeat the same OpenChainGraph/compute-node framing, and the opening verb+resource statement never appears at all, so the text is neither front-loaded nor waste-free.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object tool with no output schema, the description should convey what an agent gets back and how to supply policy_parameters. Instead it documents hosting and provenance, defers the output contract to describe_tool, and leaves the core input semantics to 'the manifest'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, 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 generic policy_parameters bag. The description adds only routing context for compute and says nothing about what fields policy_parameters should contain ('see the manifest'), so it does not meaningfully exceed the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 for 'event_market_pnl', implying a prediction-market P&L / analysis function, but never states in plain language what the tool computes or returns. It is a bundle of infrastructure, routing, and provenance notes rather than a purpose statement, so an agent must infer the actual function from the slug 'event_market_pnl'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is detailed guidance on compute routing ('auto' vs 'server' vs 'browser'), but nothing about when this analysis tool should be selected over the very numerous sibling analyzers/calculators. It never states the user situations or question types that should route here, so an agent has no selection criteria.
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 AnchorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("anchor_document_integrity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substance beyond them: transient processing with no storage/logging/retention, the synthetic-input requirement, server-vs-browser delegation semantics, and the AP2 artifact with execution_hash for chain provenance. This is solid added context, though it does not cover 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense wall that repeats the title, buries the actual purpose under compute-mode detail, and includes low-signal filler such as the FV-status hash and the 'snapshot, not a subscription' receipt caveat. Genuinely useful facts (transient processing, output artifact, downstream verifier) are scattered rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex compute-node tool with a nested policy_parameters object and no output schema, it does cover execution behavior well and points the agent to describe_tool for the return shape. What is missing is the core semantic: what decision/artifact this node actually produces from a document, which is left largely to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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:auto/browser behavior that the schema already spells out and adds only that policy_parameters are computed server-side for kernel-registered nodes, giving little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line identify a specific verb+resource (anchoring document integrity with an eIDAS timestamp) and the artifact it exports (AP2 artifact with execution_hash). However, the body spends most of its words on compute plumbing rather than stating concretely what the anchor operation computes on a document, and it never distinguishes itself from the closely-named sibling anchor_stamp. An agent gets the gist but not a crisp operational definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies workflow context (output feeds art-122-timestamp-attestation-verifier) and a data constraint ('synthetic or anonymised inputs only'), but gives no when-to-use/when-not guidance and no routing against alternatives like anchor_stamp or verify_timestamp_attestation. The compute-mode discussion is invocation mechanics, not usage guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| authority | No | Defaults 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_hash | Yes | The execution_hash(es) to anchor. |
TDQS
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.
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.
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.
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.
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.
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 BuilderBRead-onlyIdempotentInspect
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). Output schema: call describe_tool("ap2_aml_mandate_builder").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only, idempotent, and non-destructive; the description adds behavioral context beyond annotations: 'Browser-based, client-side only', 'Zero PII', 'zero network', and 'inputs are applied via the AIN Bridge'. It also tells the agent where to get the output schema. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but has repetitive claims ('client-side'/'zero PII' repeated, 'zero network' added only in the last sentence) and the truncation 'agentic payment sy Browser-based' hurts readability. It could be tightened into two clean sentences without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover safety and the schema covers the input envelope; the main missing piece is what the Policy Mandate JSON contains, and the description points to `describe_tool('ap2_aml_mandate_builder')` for that, which is helpful. However, undefined terms like 'Cat-12', 'TM rules', and 'AIN Bridge' plus the lack of concrete input IDs leave an agent dependent on external manifests or a describe call before invoking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter has a schema description ('Map of tool input element IDs to values (see manifest input_schema)'), and coverage is 100%, so baseline 3 applies. The tool description reinforces that inputs are applied via the AIN Bridge but does not list the element IDs or value shapes an agent would actually need; it refers to the manifest instead.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete transformation: 'Translate AML/BSA program controls, TM rules, and customer risk policy into a structured Policy Mandate JSON.' The resource and output are identifiable, so an agent can tell it is a mandate-building tool even without opening schema. It doesn't explicitly distinguish from mandate-related siblings such as build_ap2_cartmandate_hashchain or validate_ap2_mandate_chain, and the phrase 'agentic payment sy' is truncated, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Some context is present ('Anchor agentic tool for Cat-12', 'for interactive use'), and the note about linking users to the interactive URL implies a browser-widget use case. However, the description never states when to choose this tool over sibling builders/validators, nor any exclusion criteria, leaving timing to inference.
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)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("apply_climate_scenario").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world, and the description adds genuinely new context: determinism, transient processing with no storage/logging/retention, AP2 artifact export with execution_hash for chain provenance, browser delegation behaviour, and a snapshot-only FV receipt. It is strong on the privacy and provenance profile, though it omits error/rate-limit behaviour.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool name and node classification, but then runs into a dense, punctuation-heavy block mixing compute routing, privacy, provenance, upstream/downstream IDs, a URL, and an FV-status receipt hash with no structural separation. Several clauses repeat schema content, and the FV-status sentence is verbose boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema (deferred via describe_tool) and a nested policy_parameters object, the description covers provenance, privacy, and compute routing well. What it never supplies is the substance of the computation — the policy_parameters field names that an agent must populate — so the definition is workable but not sufficient on its own.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 are fully documented in the schema. The description adds nothing beyond echoing the compute modes and explicitly punts on policy_parameters ('See the tool's manifest for field names'), so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line establish the domain (NGFS / Fit-for-55 climate scenario, model_governance compute node), but the actual operation is never described — the opening sentence largely restates the title, and the real work ('policy_parameters ... See the tool's manifest for field names') is deferred. Against siblings like run_carbon_compliance_fit or compute_stress_test_scenarios the boundary is only implied, not stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives operational guidance for the compute mode (auto/server/browser, gpu:true always delegates) and a real constraint ('Use synthetic or anonymised inputs only'), plus upstream/downstream artifact wiring. However it never says when to choose this tool over the adjacent carbon/stress-scenario 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.
assemble_ai_addendumAI Addendum AssemblerARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assemble_ai_addendum").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 goes further by disclosing transient processing (not stored, logged, or retained), the synthetic-input requirement, deterministic execution_hash provenance, and the browser-delegation behavior. That is meaningful added context beyond the annotations, though the export side effect is not explicitly reconciled 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the identity and compute behavior well, but the tail is bloated with an FV-status hash and the self-referential "a snapshot, not a subscription; this receipt verifies offline..." clause that does not help an agent invoke the tool. The mix of pipeline metadata, provenance boilerplate, and a link dilutes the actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 so reasonably: it names the AP2 artifact and execution_hash and points to describe_tool for the full output schema. For a zero-required-parameter compute node with chaining inputs, the data-handling, compute-mode, and chain-position facts cover what 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.
Does 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 largely restates the compute semantics rather than extending them. It only indirectly gestures at parent_hashes/parent_tool_ids through the "consumes upstream artifacts" chain note, and defers policy_parameters to "the tool's manifest".
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ("AI Addendum Assembler", a compliance_mandate compute node) and anchors it in a pipeline by naming the exact upstream artifact it consumes and the downstream artifact it feeds. The only weakness is that "AI addendum" is left as jargon – it never says plainly that it assembles an AI Act procurement addendum artifact – but an agent can still distinguish it from siblings via the artifact IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real routing guidance for the compute mode ("auto" server-side for gpu:false kernels, "browser" for delegation, gpu:true always delegates) and a usage constraint ("Use synthetic or anonymised inputs only"). However it never says when to choose this tool over adjacent siblings such as assemble_aiuc1_evidence_pack or build_ai_conformity_pack, so pipeline position is only implied.
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 AssemblerARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assemble_aiuc1_evidence_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: deterministic server-side compute on Cloudflare Workers, browser delegation semantics, transient input processing with no storage or logging, a synthetic-inputs-only restriction, and an AP2 artifact carrying execution_hash. The remaining text (FV-status receipt path, URL) is provenance boilerplate rather than behavioural disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is bloated with cross-cutting infrastructure boilerplate (Worker execution model, compute binding, FV-status sha256 receipt path) that appears generic to every node in this family and crowds out tool-specific content. The purpose is front-loaded, but the compute-binding and provenance paragraphs repeat material already carried by the schema and annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does cover the essentials: it names the chain inputs and downstream consumer, discloses where the output goes and that it carries execution_hash, and explicitly routes the agent to describe_tool for the output schema. The gap is policy_parameters, whose semantics are pushed to an external manifest rather than resolved here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, including the compute enum and the parent_hashes/parent_tool_ids ordering rule, so the baseline of 3 applies. The description duplicates the compute-mode explanation rather than extending it, and it adds nothing about policy_parameters beyond deferring to 'the tool's manifest' — the schema's own wording.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource (assembles an AIUC-1 evidence pack, exporting an AP2 artifact with execution_hash) and situates it in a named pipeline between art-303-aiuc1-control-evidence-linter and art-305-aiuc1-evidence-freshness-lint, which separates it from the generic assemble_ocg_evidence_bundle sibling. However, the opening line is largely a title restatement plus an internal jargon tag ('OpenChainGraph compute node (compliance_mandate)'), and what the assembled pack actually contains 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through chain position — upstream artifacts are named explicitly and the downstream consumer is named — so an agent can infer this is the middle step of a defined AIUC-1 flow. There is no explicit statement of when to choose this over assemble_ocg_evidence_bundle, build_evidence_pack, or build_226j_response_evidence_pack, and no stated prerequisites for the upstream artifacts.
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 AssemblerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assemble_license_terms").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/no-destructive, so the safety profile is covered; the description adds genuinely useful behavior: compute:auto vs browser execution, that gpu:true always delegates, that inputs are processed transiently and not stored/logged/retained, the synthetic-input requirement, and the AP2 execution_hash export for chain provenance. It does not contradict annotations and the transient-processing/no-retention disclosure is exactly the kind of extra context this dimension rewards.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and repeats boilerplate ('OpenChainGraph compute node' appears twice) before ever stating the tool's actual function, so it is not ideally front-loaded. Much of the content (compute binding, provenance, FV-status receipt) is relevant, but the redundant opening and the verbose FV-status hash sentence dilute it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, nested-object, no-output-schema compute node, the description covers execution modes, data handling, pipeline position and explicitly points to describe_tool for the output shape, which is reasonable. However, the actual decision-function semantics of license-term assembly and the policy_parameters field names remain unexplained, leaving a substantive gap for the core computation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 text overlaps what the schema says. Baseline 3 is appropriate; the description adds little beyond the chaining/provenance framing and 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name/title ('License Terms Assembler: OpenChainGraph compute node'), and never explains what assembling license terms actually computes. It does add pipeline positioning (consumes art-204-license-compatibility-checker, feeds art-206-rights-record-builder), but that is provenance scaffolding rather than a statement of what the tool does, and it does not clearly differentiate from siblings like check_license_compatibility or certify_license_election.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative. The only usage signal is the implied pipeline position from the upstream/downstream artifact IDs, which requires the agent to already understand the ChainGraph ordering to act on it.
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 ComposerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assemble_mutual_nda").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish 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, the AP2 artifact plus execution_hash for chain provenance, and the browser-delegation fallback for gpu:true nodes. These are behavioral facts an agent cannot infer from the annotations or schema. It stops short of describing the export/artifact payload itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is one dense block mixing compute mechanics, an external URL, and a long FV-status hash that consumes significant space without helping selection or invocation. The core purpose appears first but is immediately buried under infrastructure jargon and a snapshot-verification aside that does not earn its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter compute node with a nested policy_parameters object and no output schema, the description covers execution semantics and provenance adequately, and explicitly points agents to describe_tool for the output schema. However, the actual NDA decision inputs are deferred to an out-of-band manifest, so an agent still cannot call this tool confidently from the definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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-schema, so the schema carries the load. The description restates the auto/server/browser semantics but adds no field-name detail for policy_parameters, instead deferring to an external manifest ('See the tool's manifest for field names'), which leaves the most consequential input effectively undocumented in-band.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name identify the resource (a mutual NDA) and the family (OpenChainGraph compute node, compliance_mandate), so an agent can tell roughly what it produces. But the description spends most of its text on compute-mode plumbing rather than stating a specific verb+outcome (e.g., 'drafts a mutual NDA from supplied party/term fields'). It also never distinguishes itself from sibling assemblers such as assemble_license_terms or assemble_ai_addendum.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Otherwise there are no when-to-use / when-not-to-use cues relative to the many sibling assemble_*/compose_* tools, and the compute-mode sentences read as parameter behavior 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.
assemble_ocg_evidence_bundleEvidence Bundle Tier LabelerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assemble_ocg_evidence_bundle").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, gpu:true nodes always delegate to the browser, browser mode returns a delegation URL, and the call exports an AP2 artifact with execution_hash. That is meaningful execution and data-handling detail the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loading is reasonable and the compute/privacy sentences earn their place, but the long FV-status receipt URL with its 'snapshot, not a subscription' aside and the describe_tool pointer add bulk without helping selection or invocation. The text reads as a manifest dump rather than a tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description never explains the domain purpose, what 'tiers' are produced, or what the returned AP2 artifact contains beyond a bare execution_hash, deferring output shape to describe_tool. Operational behavior is well covered, but the essential 'what does this produce' gap leaves the definition inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents compute (with the same enum semantics), parent_hashes, parent_tool_ids, and policy_parameters. The description largely repeats the compute-mode meaning rather than adding new parameter detail, so it lands at the baseline 3 with little extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mostly restates the title ('Evidence Bundle Tier Labeler') and labels it an 'OpenChainGraph compute node (attestation_mandate)' and 'Deterministic OpenChainGraph compute node' without stating what the tool actually computes or what a 'tier label' is. It never gives a plain verb+resource for the domain operation, so an agent cannot distinguish it from the many other assemble_*/build_*/attest_* siblings beyond its category tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use/when-not or alternative-tool guidance is given; the closest thing is the compute-mode discussion, which explains execution routing rather than when this tool should be chosen. The privacy note ('use synthetic or anonymised inputs only') is a constraint, not usage guidance, and no sibling like build_evidence_pack or assemble_aiuc1_evidence_pack is referenced.
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 DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare it read-only, idempotent and non-destructive, so the safety profile is covered. The description adds substantial value beyond that: transient/non-retained input handling, deterministic compute, server-side vs browser delegation behavior, gpu:true always delegating, and the AP2 artifact/execution_hash export with an upstream artifact dependency. This is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute/provenance facts are front-loaded, but the description is long and repeats the resource name from the tool name and title, and the trailing FV-status receipt/URL paragraph is verbose and tangential. It is not padded with empty prose, yet several sentences could be trimmed without losing instruction value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute-node tool with no output schema, the description covers the compute path, data handling, upstream artifact consumption, and the exported AP2 artifact with execution_hash, which is enough to invoke it correctly. It stops short of describing what a readiness verdict looks like, but annotations and the schema cover the remaining mechanical needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description merely restates the compute-mode semantics. The ambiguous policy_parameters object is glossed with "See the tool's manifest for field names", which adds nothing beyond the schema's own hedge. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/spec name gives a specific verb+resource (assess readiness to publish an agent directory), but the description body is dominated by compute-node and provenance boilerplate rather than stating what the readiness decision actually evaluates. It does not distinguish itself from near-neighbors such as run_mcp_deployability_diagnostic or score_mcp_readiness, so an agent can only guess which diagnostic applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is real guidance on the compute mode ("auto" vs "server" vs "browser") and a data-hygiene instruction ("Use synthetic or anonymised inputs only"), which is useful. However, there is no when-to-use-this-vs-alternatives guidance, no prerequisites, and no indication of when to prefer a sibling readiness tool.
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 PackBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 materially beyond them: deterministic server-side vs browser delegation behaviour, the transient/not-stored/not-logged data-handling guarantee, and the AP2 artifact with execution_hash. These are genuine behavioural traits an agent needs and could not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense run-on that front-loads the title but then buries the reader in regulatory amendment history (Digital Omnibus, Parliament approval June 2026) and a verbatim FV-status hash URL plus an explanation of why it is a snapshot. Much of this does not help an agent decide whether or how to call the tool, so several sentences fail to earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 returns, and it only partially does so (mentions an AP2 artifact with execution_hash and lists downstream consumers). It never describes what a conformity assessment result contains, which leaves a gap for such a complex regulatory tool, though inputs, modes, and data handling are adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's compute-mode sentence largely repeats the 'compute' schema description (adding only that 'browser' returns a delegation URL). For policy_parameters it defers entirely to 'the tool's manifest for field names', adding no semantic 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify a conformity assessment for EU AI Act credit-scoring (Annex III Part 5(b)), and the description anchors the regulatory basis and deadline. However, it never states in plain terms what the tool actually computes or returns — it leads with infrastructure detail (compute binding, FV-status receipts) rather than a verb+resource statement of the assessment. It also fails to distinguish itself from close siblings like run_ai_act_highrisk_fit or classify_annex3_decisioning_obligations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the credit-scoring high-risk context and the '2027-12-02' deadline signal when the tool is relevant, and 'Use synthetic or anonymised inputs only' is a real constraint. But there is no explicit when-to-use versus alternatives, no exclusions, and no sibling routing (run_ai_act_highrisk_fit, assess_iso42001_aims_conformance) despite many near-neighbours in the catalogue.
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 AssessorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_circumvention_diligence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior: compute-mode routing (auto/server/browser, gpu:true delegation), transient processing with no storage or logging, and export of an AP2 artifact carrying execution_hash for provenance. That retention and provenance detail goes beyond what the annotations carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text opens by restating name and title, then dumps metadata that doesn't help invocation: a documentation URL, an FV-status SHA-256 hash, and a note that the receipt is 'a snapshot, not a subscription'. Key operational facts are buried mid-paragraph after the metadata noise, so the definition is neither front-loaded nor lean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose core input is an open-ended policy_parameters object, the description defers field discovery to 'the tool's manifest' and the return shape to describe_tool(...), leaving the decision function opaque. It does cover the compute modes, provenance export, and input-handling policy, but the central question — what gets assessed and with which fields — is outsourced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 is largely a restatement of the schema's own compute description, adding no extra syntax or semantics. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
It labels itself an 'OpenChainGraph compute node (compliance_mandate)' and names a resource ('circumvention diligence'), but never states what the assessment actually decides or returns — 'assess' is the only verb and its subject is left abstract. The chaining lineage (consumes art-94, feeds art-96/cry-04) hints at scope but doesn't tell an agent what the tool computes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling assess_* tools. The only prescriptive line, 'Use synthetic or anonymised inputs only', is a privacy constraint, not selection guidance. Upstream/downstream artifact IDs describe chaining, not 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.
assess_cra_vuln_reporting_readinessCRA Vulnerability Reporting Readiness (Art. 14)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_cra_vuln_reporting_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic server-side compute for gpu:false nodes, browser delegation URLs for gpu:true, transient non-stored input processing, and an exported AP2 artifact carrying execution_hash. It doesn't clarify what the readiness verdict itself contains, but the operational profile is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long and poorly front-loaded: the opening sentence repeats the title, then a wall of platform boilerplate (compute binding, FV-status receipt URL, hosting notes) precedes any substantive information. Much of it does not earn its place for selecting or invoking this specific tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 partially compensates by naming the exported AP2 artifact and pointing to describe_tool for the output shape. But the free-form policy_parameters object — the actual decision inputs — is left unexplained, which is a notable gap for a 4-parameter nested-input tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 echoes the compute-mode semantics and the upstream chaining intent, but adds no field-level meaning beyond that, notably leaving 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title states a verb+resource (assess CRA Art. 14 vulnerability reporting readiness), and the pointer to an upstream artifact from art-139-cra-annex1-completeness-checker gives some sibling differentiation. However, the body never explains what the assessment actually evaluates or produces; it is dominated by OpenChainGraph compute-binding 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance relative to siblings such as check_cra_annex1_completeness or run_dora_readiness_diagnostic. The only 'guidance' concerns compute mode selection (auto/server/browser), which is an execution mechanic, not a routing condition.
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 MonitorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_defi_lending").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 does add real operational context beyond that — transient processing with no retention, server vs. browser compute delegation, GPU always delegating, and emission of an AP2 artifact with execution_hash. However, none of it describes the tool's actual analytical behavior or output, so it adds infrastructure transparency, not tool-specific transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by templated compute-node boilerplate, a raw FV-status SHA-256 URL, and offline-receipt language that consumes most of the length without helping an agent invoke the tool. The only tool-identifying content is the opening title clause, so the signal-to-noise ratio is poor despite a front-loaded first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 punts returns to 'call describe_tool("assess_defi_lending")' while policy_parameters field names are deferred to 'the tool's manifest' — leaving the core analytical inputs and outputs entirely unspecified. For a nested-object analytics tool with zero required params, this is a significant completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 with enums described. The description's restatement of compute:"auto"/"browser" and the AP2 chaining of parent hashes mirrors the schema rather than adding syntax or format detail, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names a domain (DeFi lending health/liquidation), but the description body never states what the tool actually computes — position health factors, liquidation thresholds, or risk metrics. Everything past the first clause is generic compute-node boilerplate that would apply to any node in this family, so it doesn't distinguish this tool from siblings like compute_ltv_ratios or assess_restaking_risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The only constraint offered is 'Use synthetic or anonymised inputs only,' which is an input-policy warning, not usage routing. An agent cannot tell from this text when a DeFi lending assessment is the right call versus another risk 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 PackCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_exam_readiness_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/non-open-world, but the description meaningfully adds that inputs are processed transiently and 'not stored, logged, or retained', that compute:'browser' returns a delegation URL, and that an AP2 artifact with execution_hash is exported. That is genuine behavioral context beyond structured fields, though it stops short of describing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on mixing purpose, compute plumbing, privacy policy, artifact export, a URL, and an FV-status receipt with a full hex hash. The one agent-relevant selector cue (what the tool does) is buried behind infrastructure boilerplate, and the receipt/URL sentences do not help selection or invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and nested, opaque policy_parameters, the description offloads field names to 'the tool's manifest' and the return schema to describe_tool('assess_exam_readiness_pack'). That pointers are useful, but an agent still lacks the semantic content of policy_parameters or what the readiness output contains, leaving a moderate gap for a 4-param nested compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 explanation of compute:'auto'/'browser' and gpu:true delegation largely duplicates the schema, adding no syntax or format detail. Baseline 3 for a fully-covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with 'Examination Readiness Pack: OpenChainGraph compute node (compliance_control)' and 'Deterministic OpenChainGraph compute node' – essentially a restatement of the title plus infrastructure labels. It never says what an exam-readiness assessment actually evaluates, what decision it makes, or how it differs from the many sibling 'assess_*' tools. The core purpose is left as a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. There is no statement of when this readiness pack applies versus alternatives like assess_psd3_readiness or run_t1_readiness_diagnostic, 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.
assess_iso42001_aims_conformanceISO 42001 AIMS Clause ConformanceCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_iso42001_aims_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server-side execution on Cloudflare Workers, browser-delegation fallback, transient non-retained processing, and an AP2 export carrying execution_hash plus an offline-verifiable FV receipt. It stops short of describing the assessment's logic or failure modes, but this is rich for an annotated read-only node.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a dense run-on that buries the point, and it embeds a full 64-character FV hash and a bare URL inline, which is clutter rather than signal. Compute mechanics are front-loaded ahead of any statement of what the tool evaluates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param, no-output-schema node, the safety and execution-mode context is reasonably covered, but the description defers return detail to describe_tool and never explains the assessment semantics or what a conformance verdict contains. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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/policy_parameters are already documented. The description mirrors the compute-mode explanation already in the schema and adds only the chaining intent ('output feeds art-172'), which is marginal beyond structured data — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title convey that this assesses ISO 42001 AIMS clause conformance, and the description identifies it as a 'compliance_mandate compute node' whose output feeds art-172. But the body is dominated by compute-plumbing jargon and never says what the assessment actually evaluates or what the caller supplies to drive it, so a sibling like check_gpai_code_conformance is not clearly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative among the many conformance tools. The only usage-like statement is the safety constraint 'Use synthetic or anonymised inputs only,' which is a restriction 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.
assess_mar_crypto_surveillanceMAR-Crypto Surveillance-Readiness AssessorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_mar_crypto_surveillance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 the annotations do not: the compute:'auto'/'server'/'browser' resolution logic, gpu:true always delegating to the browser, transient processing with no storage/logging/retention, and the AP2 artifact with execution_hash for chain provenance. However, much of the compute-mode text is duplicated from the schema, so the net gain over structured fields 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening title/domain phrase is front-loaded, and the description does pack the important caveats (transient processing, synthetic inputs) into a compact block. However, it wastes space on platform boilerplate — the full FV-status hash, the artifact URL, and the 'call describe_tool(...)' pointer — that an agent selecting a tool gains little from. Leaning towards efficient but padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 deflects by telling the agent to call describe_tool for it, which is not a substitute. The critical input — what field names policy_parameters requires for the MAR assessment — is explicitly unavailable ('See the tool's manifest'), so an agent cannot construct a valid assessment call from this definition alone. The chain-provenance fields are covered, but the functional core is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; baseline 3 applies. The description adds nothing beyond that — notably it defers policy_parameters field names to 'the tool's manifest', so it does not compensate for the opaque, schema-undocumented contents of that object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title verbatim ('MAR-Crypto Surveillance-Readiness Assessor') and tags the node type as 'compliance_mandate', but never states in its own words what the tool actually assesses or produces. There is no verb+resource statement (e.g. 'scores a firm's MAR Article 12 surveillance controls against crypto-specific criteria'), and no differentiation from the many sibling readiness assessors (assess_mica_casp_readiness, run_mica_casp_fit, assess_agent_directory_publish_readiness).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only actionable usage instruction is 'Use synthetic or anonymised inputs only', which is a privacy caveat rather than when-to-use guidance. The upstream/downstream chain references (art-98-mica-casp-fit-diagnostic, cry-05-agent-action-audit-trail-aggregator) hint at pipeline position but do not tell the agent when to pick this tool over sibling readiness diagnostics. No exclusions or alternative-selection criteria are given.
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 AssessorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_mica_casp_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/non-destructive, the description still adds real value: inputs are 'processed transiently... not stored, logged, or retained', inputs should be 'synthetic or anonymised', execution is deterministic, and it exports an AP2 artifact with execution_hash for provenance. The 'Use synthetic or anonymised inputs only' warning is an important behavioral constraint 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on combining title, compute-binding boilerplate, data-retention policy, artifact chaining, an HTML URL, and a sha256 FV-status file path. Front-loading is poor (title restated first, actual purpose never surfaced), and the URL/hash-receipt sentences consume 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance-chain compute node with no output schema, the description does cover compute modes, chaining inputs, transient-data handling, and points to describe_tool for the schema. What remains missing is what the readiness assessment actually evaluates and how to populate policy_parameters, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 duplicates the compute-mode semantics and adds chain intent (upstream artifact feeding), but says nothing about policy_parameters beyond deferring to 'the tool's manifest'. Baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('CASP Authorization-Readiness Assessor') and then pivots to infrastructure ('Deterministic OpenChainGraph compute node (compliance_mandate)'). It never states what the assessment actually evaluates or returns; the purpose must be inferred from the sibling artifact names (art-98 fit diagnostic, art-101 own-funds calculator). It is distinguishable from siblings only via those artifact references, not via a clear 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Chain-position guidance is present ('Consumes upstream artifacts from art-98-mica-casp-fit-diagnostic'), which implies it should run after the fit diagnostic, and the compute-mode semantics (auto/server/browser) are spelled out. However it never says when to prefer this over the many sibling MICA tools (run_mica_casp_fit, calculate_mica_own_funds, check_mica_register_presence), so 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.
assess_model_validation_statusModel Validation Status AssessorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_model_validation_status").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond that: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL, gpu:true nodes always delegate, and an AP2 artifact with execution_hash is exported. This is useful but does not address permissions, failure modes, or the FV-status snapshot's operational role beyond a link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The passage is long and dominated by boilerplate: a raw FV-status hash URL, a documentation link, and repeated restatement of compute binding rules. Useful signals (transient processing, upstream artifact consumption) are buried among infrastructure noise rather than front-loaded 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 optional parameters, a nested policy_parameters object, and no output schema, the description defers return-value explanation to describe_tool and to the manifest. It covers compute modes and provenance chaining adequately but leaves the core decision function opaque, which is a gap for a tool whose purpose is an assessment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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:'auto'/'browser' behavior and points to a manifest for policy_parameters field names rather than enumerating them, which adds little beyond the schema's own parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is a 'Model Validation Status Assessor' and an 'OpenChainGraph compute node (compliance_control)' that consumes upstream artifacts from art-451-model-outcome-analysis and exports an AP2 artifact. However, it never explains what the assessment actually computes or decides about model validation status – the name carries the meaning and the body is infrastructure boilerplate. It does not distinguish itself from siblings like compare_model_outcome_analysis, replicate_model_outputs, or compute_eba_im_model_validation_tracker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 semantics, which are operational rather than selection guidance. There is no statement of when to use this tool versus the many sibling model-validation 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.
assess_naic_ais_program_readinessNAIC AI Systems Program Readiness AssessmentBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them: transient processing with no storage, logging, or retention, export of an AP2 artifact with execution_hash for chain provenance, consumption of a specific upstream artifact, and an offline-verifiable FV-status receipt. That is genuine context an agent could not derive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the title and the compute-mode rule, which is good, but the opening repeats itself ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and a long URL plus a raw hash consume space without helping tool selection. Some sentences do not fully earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers infrastructure concerns well (compute modes, data handling, provenance chaining, FV receipt), but it never describes what the readiness assessment itself checks or the shape of its result. An agent knows how to run 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.
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 fully documented in the schema. The description's compute explanation duplicates the schema rather than extending it, and it defers policy_parameters semantics to 'the tool's manifest' instead of clarifying the opaque nested object. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title specify a verb and a resource (NAIC AI systems program readiness assessment), which is enough to distinguish it from the many other assess_* siblings. However the description body adds no substance about what the assessment evaluates or produces — it is almost entirely compute-binding and provenance boilerplate. Purpose is conveyed by the name 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.
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 the compute-mode semantics, which are operational rather than selection guidance. There is no statement of when to use this tool versus assess_ai_act_conformity, assess_iso42001_aims_conformance, or other readiness siblings, and no prerequisites.
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 CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_psd3_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive context beyond them: inputs are processed transiently and not stored/logged/retained, compute:'auto' computes server-side vs compute:'browser' returning a delegation URL, gpu:true always delegates, and an AP2 artifact with execution_hash is exported for chain provenance. That is genuine behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is buried behind compute-binding and regulatory-deadline metadata, and two full URLs plus a long FV-status hash string consume space without helping an agent decide or invoke. The content is dense rather than padded, but the front-loading is weak.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry more of the return-value burden, but it only names the AP2 artifact/execution_hash and downstream consumers. For a 4-parameter node whose nested policy_parameters drive the actual assessment, the lack of any description of what is evaluated or produced leaves a real gap, though safety and provenance are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explicitly defers the policy_parameters field names to 'the tool's manifest', so it adds no meaning beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line identify the regulatory domain (PSD3/PSR readiness) and the graph node type, but the description never states what the check actually computes, what inputs the assessment consumes, or what it returns. It reads as infrastructure metadata (deadlines, compute modes, provenance) rather than a statement of the tool's job, so an agent knows 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.
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 readiness/assessment tools (assess_mica_casp_readiness, run_dora_readiness_diagnostic, run_t1_readiness_diagnostic, etc.). The only guidance given is a data-handling restriction ('Use synthetic or anonymised inputs only') and a downstream 'output feeds' note, which are not invocation criteria.
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 AnalyzerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_restaking_risk").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, and the description goes beyond them: inputs are processed transiently and not stored or logged, execution is deterministic, compute:'auto' runs server-side on Cloudflare Workers while 'browser' returns a delegation URL, and output is an AP2 artifact carrying execution_hash for provenance. These are real behavioral facts an agent needs and are not in the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long and jargon-dense, front-loaded with title duplication rather than the actual purpose, and much of it (compute modes, output schema pointer) repeats what the schema already carries. Informative content is buried under infrastructure boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is an opaque nested object whose field names are only available 'in the tool's manifest,' so the description leaves the core decision-function inputs undefined. It does not compensate with the input semantics an agent would need to call this correctly, and defers to an external URL and describe_tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 that the schema already documents ('auto' default, 'browser' forces delegation, gpu:true always delegates) but adds nothing about parent_hashes/parent_tool_ids or the contents of policy_parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The only statement of purpose is the title 'Restaking Delegation and Slashing Risk Analyzer' restated verbatim; the body then pivots entirely to OpenChainGraph compute-node mechanics. It never says what risk dimensions are assessed, what decision function runs, or how it differs from sibling risk assessors like assess_defi_lending. This is essentially a tautological restatement of the name 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.
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 usage guidance, and there is no when-to-use/when-not vs alternatives despite dozens of competing assessment tools. The description never explains what kind of restaking delegation or slashing question this tool answers.
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 AssessorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_suspect_product_status").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 does add useful behavioral context beyond them: transient server-side processing with no storage/logging, a 'use synthetic or anonymised inputs only' constraint, AP2 artifact export with execution_hash, and upstream chaining from art-113. However, all of this is generic compute-node boilerplate repeated across the family and says nothing about the tool's own 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense block that front-loads execution mechanics, then embeds a 64-character FV-status hash URL that carries no actionable value for an agent selecting the tool. Template boilerplate (compute modes, AP2 export, transient processing) crowds out the tool-specific purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 delegates return values to describe_tool rather than explaining them. For a 4-parameter decision node, it omits what the assessment produces, what 'quarantine' means in this context, and which policy_parameters fields are required.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 4 optional parameters, so the baseline is 3. The description adds nothing to parameter meaning and explicitly punts policy_parameters to 'the tool's manifest for field names', leaving the decision-function inputs undocumented in prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('DSCSA Suspect/Illegitimate Product Quarantine Assessor') and labels it a 'compliance_mandate' compute node, so the resource is named, but it never says what the assessment actually decides (e.g., quarantine/disposition status for suspect product). It is not a tautology, but no sibling differentiation is offered against the many nearby assess_* and verify_dscsa_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 logic ('compute:auto' vs 'browser') is about execution mechanics, not about when this assessment should be chosen, and that logic is already documented in the schema.
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 AssessorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("assess_traiga_exposure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server-side vs browser-delegation semantics, the gpu:true always-delegates rule, transient processing with no storage/logging/retention, and emission of an AP2 artifact with execution_hash for chain provenance. This is genuinely useful disclosure about side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is redundant ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'), and a large share of the text is infrastructure/URL/FV-status hash boilerplate rather than task-relevant guidance. The actual purpose is never front-loaded, so an agent must wade through plumbing before learning anything about what the tool computes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 convey what is returned; it only points to describe_tool for the output schema and mentions an AP2 artifact, without describing the assessment result. For a 4-parameter tool with a nested open-object parameter and a decision function, the description leaves the core computational contract to external artifacts (manifest, describe_tool).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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. policy_parameters is an open object whose field names are explicitly deferred to 'the tool's manifest', leaving the substantive input shape undocumented 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'TRAIGA Exposure Assessor' OpenChainGraph compute node in the 'compliance_mandate' family and names the downstream consumer (art-314-traiga-safe-harbor-pack-builder), which gives some differentiation. However it never states what TRAIGA exposure actually is or what the assessment determines; the substantive content is about compute plumbing, not the tool's purpose. An agent knows the ecosystem slot but not the 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.
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 siblings like build_traiga_safe_harbor_pack or other assess_* tools. The only prescriptive text is 'Use synthetic or anonymised inputs only', which is a data-handling constraint, not usage guidance. The compute-mode explanation describes mechanics rather than 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_vida_drr_reporting_obligationViDA DRR Transaction ReporterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint/idempotentHint/destructiveHint false), the description discloses genuinely useful behavioral traits: inputs are processed transiently and not stored/logged/retained, compute mode governs server vs browser execution and gpu:true nodes always delegate, and the tool exports an AP2 artifact carrying execution_hash. These are substantive context additions rather than restatements of the hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a long run-on blob mixing platform architecture, compute-binding rules, privacy, artifact provenance, a URL, and a 64-hex-character FV-status path. The front-loaded sentence is identity boilerplate rather than purpose, and the embedded hash string is essentially unreadable noise for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a free-form nested policy_parameters object whose fields are deferred to an unstated manifest, the description leaves the most important unknown unresolved: what inputs the decision function actually needs. Provenance and execution mechanics are covered, but the core 'what do I pass in to assess the obligation' question is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter definitions already carry the load, establishing the baseline of 3. The description's compute-mode explanation merely paraphrases the schema's own 'compute' description, and for policy_parameters it adds nothing beyond the schema's pointer to 'the tool's manifest'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with platform boilerplate ('OpenChainGraph compute node (compliance_mandate)') and effectively restates the name/title rather than stating what the assessment actually computes. It never says what a ViDA DRR reporting obligation is or what the node decides. The only functional hints are the upstream/downstream artifact wiring, which tells an agent where the node sits 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not guidance, and no routing against close siblings such as run_vida_readiness_diagnostic, assess_vida_recapitulative_migration, or validate_vida_einvoice_conformance. The only usage constraint 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.
assess_vida_recapitulative_migrationViDA Recapitulative Statement Migration AssessorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful context beyond them: transient processing with no storage or logging, server-side vs browser delegation semantics for compute modes, an AP2 artifact export with execution_hash for provenance, and an offline-verifiable FV-status receipt. This is above the annotation-covered baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The identity is front-loaded, but the body is a dense run-on mixing infrastructure, retention policy, provenance, upstream links, and a raw FV-status URL plus hash. Several clauses (the full hash/URL) could be compressed or moved to metadata without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations, full schema coverage, and no output schema, the definition covers execution mode, data handling, and provenance adequately. It is still incomplete on the substantive gap: what the migration assessment evaluates and what a caller should expect as its decision output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute-mode and chaining behavior rather than adding new parameter meaning, and policy_parameters is left to 'the tool's manifest' just as in the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (ViDA recapitulative-statement migration) and frames it as a compliance-mandate compute node, but never states what the assessment actually decides (e.g., whether/when a migration obligation applies). It does not differentiate from close siblings like assess_vida_drr_reporting_obligation or run_vida_readiness_diagnostic. 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.
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' and a mention of consuming artifacts from art-160-vida-drr-transaction-reporter. There is no when-to-use, when-not-to-use, or routing guidance relative to the several sibling ViDA assessment tools.
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 IntegrityCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("attest_bulk_disbursement_integrity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 or logged, compute:"browser" forces client-side execution and returns a delegation URL, gpu:true nodes always delegate, and the output is an AP2 artifact carrying execution_hash. This is meaningful disclosure that the annotations do not cover. The mention of an offline-verifying FV snapshot is slightly at odds with openWorldHint:false but not an outright contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with infrastructure boilerplate, a raw URL, and a full SHA-256 FV-status path that occupy more space than the functional content. The one useful sentence (transient processing / no retention) is buried, and there is no front-loaded statement of what the tool computes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested, free-form policy_parameters object and no output schema, the description should explain the decision function's subject matter and what inputs are expected. Instead it defers to 'see the tool's manifest' and describe_tool, leaving the core domain semantics and required input shape unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics, which the description echoes rather than extends. Baseline 3 applies; the description adds no field-name detail for policy_parameters beyond deferring to a manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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) that exports an AP2 artifact, but it never explains what 'bulk disbursement integrity' attestation actually does or what it validates. It largely restates the title and names infrastructure rather than the domain action, so an agent cannot distinguish its substantive purpose from siblings like attest_daily_reconciliation 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.
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 constraint, not a when-to-use rule. There is no statement of when this attestation is appropriate versus the many other attest_* and validate_* siblings, nor prerequisites or alternatives.
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 AttestationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("attest_calc_agent_independence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior: inputs are processed transiently and not stored/logged/retained, browser delegation URLs are returned under compute:'browser', gpu:true nodes always delegate, and an AP2 artifact with execution_hash is exported. This 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is sprawling and front-loads repetitive phrasing ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node'), then embeds a long URL and an FV-status hash. Several sentences restate schema content, and the actual purpose is not front-loaded, so structure is weak.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 points the agent to describe_tool for the output schema and mentions the AP2 artifact and execution_hash. However it never explains the actual independence attestation semantics or what the decision function evaluates, leaving an important gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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'/gpu delegation behavior but adds nothing beyond the schema's own descriptions, meriting the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title indicate an independence attestation, but the description never states what the tool actually attests or computes for the calculation agent; most of the text explains compute-node plumbing instead. It identifies the resource (OpenChainGraph compute node / attestation_mandate) but buries the purpose. Not a tautology, but no clear verb+resource statement of the tool's actual decision function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains compute routing modes and warns to use synthetic/anonymised inputs, but gives no guidance on when to select this tool versus the many sibling attest_* and verify_* tools. There is no when-to-use or when-not-to-use statement relative to alternatives.
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 AttestationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world. The description adds genuinely useful behavior beyond that: inputs are processed transiently and not stored/logged/retained, browser delegation returns a URL, gpu:true always delegates, and the FV-status receipt verifies offline. That is meaningful context a 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is stated first and execution mechanics follow, but the prose is dense with internal vocabulary (compute binding, FV-status hash) and long URLs. Sentences mostly carry content, yet the size is heavy for a tool whose core function is never summarized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 describe the return artifact (AP2 export with execution_hash) and chaining semantics. But policy_parameters — the actual decision inputs — are punted to 'the tool's manifest', so an agent cannot know what reconciliation fields to supply; the definition is adequate but incomplete for a nested-object compute tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 but adds little about parent_hashes ordering or policy_parameters beyond deferring to the manifest, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 named 'attestation_mandate' and states it exports an AP2 artifact with execution_hash. However, it never states what the daily reconciliation attestation actually computes or decides, leaving the core purpose vague relative to siblings like attest_margin_call_lifecycle and attest_bulk_disbursement_integrity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises using synthetic or anonymised inputs only and explains the compute modes, which is operational guidance. But there is no when-to-use vs. alternatives routing, no prerequisites, and no indication of which reconciliation scenario this attestation suite is meant for.
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 LifecycleCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored or logged, synthetic inputs are required, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for provenance. This meaningfully exceeds structured fields, though it reads as template text repeated across OCG nodes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded, but the second sentence redundantly repeats 'OpenChainGraph compute node' already stated in the first, and the trailing FV-status URL block is dense and low-signal for tool selection. Each clause is individually informative but the redundancy and URL noise cost structure points.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 AP2 artifact/response contains, but it only says an execution_hash is exported. It also defers policy_parameters field names to an external manifest, leaving a 4-parameter, nested-object tool materially under-described for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description only restates the compute-mode semantics already present in the schema enum and adds nothing about parent_hashes ordering or policy_parameters field names (which 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name/title ("Member Margin Call Lifecycle: OpenChainGraph compute node") and then fills the space with infrastructure boilerplate about compute binding and kernels. It never actually says what the margin-call-lifecycle attestation computes or decides, so an agent cannot distinguish the substantive purpose from any sibling compute node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g. compute_perp_margin, mobilize_margin_collateral, or other attest_* tools). The only conditional guidance concerns compute mode (auto/server/browser), which is parameter behavior, not tool-selection advice.
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 AuditorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("audit_acp_ucp_product_feed").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 non-obvious behavior: transient processing with no storage or logging, deterministic execution, compute:"browser" returning a delegation URL rather than a result, and export of an AP2 artifact carrying execution_hash. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
PLACEHOLDER
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 partially (artifact shape via AP2 export + execution_hash, pointer to describe_tool for output schema). However, a conformance auditor's core return — pass/fail criteria, rule set, findings — is never characterized, leaving a gap for a reasonably complex, zero-required-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description, and for policy_parameters it only redirects to 'the tool's manifest', adding no meaning beyond what is already present.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause restates the title verbatim ("ACP/UCP Product-Feed Conformance Auditor: OpenChainGraph compute node") and then pivots into compute-binding plumbing. The domain is identifiable from name+title, but nothing explains what 'conformance' actually checks or what the decision function consumes, and no sibling (e.g. validate_agent_commerce_conformance, lint_ucp_checkout_payload, select_agentic_checkout_protocol) is distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied via pipeline position (consumes art-19-agentic-checkout-protocol-selector, feeds art-21 and ptg-01) plus the constraint to use synthetic/anonymised inputs. There is no explicit when-to-use vs. when-not, no prerequisites, and no alternative tool named.
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 AuditorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server vs browser execution with a delegation URL, transient processing with no storage/logging/retention, and an execution_hash for chain provenance. These are real operational disclosures 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long, boilerplate-heavy, and back-loaded: the actual function is never stated while URLs, an FV-status file hash, and 'a snapshot, not a subscription' meta-commentary consume most of the space. Much of it is generic platform boilerplate that 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter compliance tool with a nested policy_parameters object and no output schema, the description should explain what the audit computes; instead it defers parameter semantics to an external manifest and explains only plumbing. The mechanical/retention side is covered, but the core semantic content an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 duplicates the enum description and it explicitly defers field names to 'the tool's manifest', so it adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the name/title ('Agent Key Rotation Auditor: OpenChainGraph compute node') and then spends its whole budget on infrastructure plumbing (compute modes, delegation, FV-status URL). It never states what the key-rotation audit actually evaluates or what it produces beyond 'an AP2 artifact'. An agent learns it is a 'compliance_mandate' node but not the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance versus the 200+ siblings, and no explicit exclusions or alternatives. The only selection hints are mechanical ('output feeds art-133-agent-payment-rail-trust-crosswalk') and a data-hygiene rule ('Use synthetic or anonymised inputs only'), neither of which 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.
audit_mcp_oauthMCP OAuth 2.1 Authorization AuditorARead-onlyIdempotentInspect
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). Output schema: call describe_tool("audit_mcp_oauth").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, non-destructive), the description adds key behavioral context: the tool renders an interactive widget, runs client-side, and guarantees zero PII and zero network. This materially informs an agent about side effects and security posture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then usage, and then behavioral details; every sentence earns its place. The note about calling describe_tool to obtain output schema is practical and avoids duplicating structured information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only audit tool with annotations and a single map parameter, the description covers purpose, usage, behavior, and how to obtain the output schema. It does not describe the exact output format, but instructs agents to call describe_tool('audit_mcp_oauth'), which bridges that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'inputs' is already documented in the schema as a map of element IDs to values, with schema coverage at 100%. The description adds that inputs are applied via AIN Bridge, but this is more operational context than semantic parameter meaning. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Audit'), a specific resource ('MCP OAuth 2.1 authorization'), and enumerates concrete checks (RFC 9728 metadata, RFC 8707 audience binding, token-passthrough/confused-deputy risk). This clearly distinguishes it from sibling audit tools like audit_mcp_tool_scope_revocation or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states a clear when-to-use: 'Use when a developer is securing an MCP server's authorization.' It does not name alternatives or exclusions, but the stated scenario is specific enough for an agent to select this tool over related audit helpers.
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 AuditorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("audit_mcp_tool_scope_revocation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 them: deterministic execution, transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, and AP2 artifact export with execution_hash. It does not disclose what the audit reports 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is boilerplate-heavy and not front-loaded: platform mechanics, a doc URL, and an FV-status hash precede any mention of what the tool is for. Several sentences (gpu:true delegation, FV receipt offline verification) do not help an agent invoke this tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 audit produces, yet it only says an AP2 artifact with execution_hash is exported and points to describe_tool(). For an arbitrary-key policy_parameters object (nested, additionalProperties), an agent has no idea what to pass; deferring to an unnamed manifest leaves the call under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 enum semantics already in the schema and explicitly punts policy_parameters field names to 'the tool's manifest', adding no semantics the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title indicate an MCP tool scope/revocation audit, but the description never says what the audit actually inspects, decides, or returns. Almost the entire body describes platform plumbing (compute modes, Workers, chaining) rather than the tool's purpose, so an agent cannot distinguish it from siblings like verify_revocation_status 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.
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 any of the many adjacent audit/scope/revocation tools. The only routing signal is a downstream consumer ('Output feeds: art-151-agent-obo-mandate-validator'), which describes chain flow, not when an agent should pick this tool.
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 ComparatorARead-onlyIdempotentInspect
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). Output schema: call describe_tool("baas_provider_comparator").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses meaningful behavior: it is browser-based, client-side-only, runs with zero PII and zero network, and is rendered as an AINumbers widget with inputs applied via the AIN Bridge. This adds 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose and outputs, then gives execution and privacy context. There is some redundancy ('client-side only' and 'zero PII' are repeated), but each sentence still contributes useful information and the structure is clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers purpose, outputs, architecture, and privacy, and points to describe_tool for the output schema. However, the input contract is opaque—it relies on a manifest and 'input element IDs' rather than specifying the actual fields, so an agent may not be able to construct correct inputs from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 context about the user-adjustable 1-5 weighting matrix and the 10 dimensions, but it does not enumerate the actual input element IDs or explain how weights are passed through the inputs map.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Score and compare'), a specific resource ('BaaS providers'), and enumerates exactly what is covered: 10 capability dimensions, a weighting matrix, and the outputs. This clearly differentiates it from generic comparison tools among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context for what the tool evaluates, but it does not state when to prefer this tool over alternatives or when not to use it. The usage is implied rather than explicit, and no sibling comparator tools are referenced.
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 BenchmarkCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("benchmark_tp_interquartile_range").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, yet the description adds real behavioral context beyond them: server-side vs browser execution rules, that gpu:true nodes always delegate, that inputs are processed transiently and not stored/logged/retained, and that it exports an AP2 artifact carrying execution_hash for chain provenance. This is substantive disclosure for a compute node, though it never states the auth or rate-limit posture.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense and boilerplate-heavy: a URL receipt, a long FV-status hash path, and a 'snapshot, not a subscription' caveat that is irrelevant to selecting or invoking the tool. The genuinely useful behavioral sentences are buried after the name/title restatement rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a node with no output schema (deferred to describe_tool) and a nested policy_parameters object, the description does cover execution modes, provenance chaining, and data handling adequately. However it omits the one thing an agent most needs — what the benchmark computes and what policy_parameters should contain — leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and each of the 4 parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) is documented in the schema itself. The description's compute-mode prose largely duplicates the schema's enum description, adding no syntax or format detail the schema lacks, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Transfer-Pricing Interquartile Range Benchmark: OpenChainGraph compute node') and labels the category (compliance_mandate) but never says what the tool actually computes — no verb, no definition of the interquartile range benchmark it produces. An agent cannot tell from this text what output or decision function it exposes, and there are hundreds of sibling compute nodes to distinguish it from, which the description does not attempt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only two usage signals appear: 'Use synthetic or anonymised inputs only' and the note that it consumes upstream artifacts from art-472-cbcr-builder. There is no when-to-use/when-not guidance and no comparison to any of the many compute_* or benchmark-adjacent siblings.
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 BinderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("bind_agreement_acceptance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds genuinely useful non-annotation context: inputs are processed transiently and not stored/logged/retained, only synthetic or anonymised inputs should be used, and exports carry an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded with the tool identity, but the block then mixes compute placement, privacy, artifact export, an external URL, and an FV-status receipt hash, making it dense and partly boilerplate-heavy rather than tightly focused on what an agent needs to call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, all-optional tool with no output schema, the description covers compute modes, privacy handling, provenance chaining, and defers return-value detail to describe_tool (a reasonable mechanism). It is close to complete, though the decision semantics of the node itself remain underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (also in the schema) and clarifies that parent_hashes/parent_tool_ids drive chain.parent_hashes in the export, but adds little on policy_parameters beyond deferring to the tool manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title pair ('bind_agreement_acceptance' / 'Agreement Acceptance Binder') conveys the verb and resource, and the description adds that it exports an AP2 artifact with execution_hash and consumes upstream artifacts from art-276-mutual-nda-composer. However, it never states what the 'agreement acceptance' decision function actually evaluates, and it does not distinguish itself from closely related siblings such as bind_attested_subject 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains compute placement (auto/server/browser) but gives no when-to-use or when-not-to-use guidance relative to the many alternative binding/artifact tools in the sibling list. An agent is left to infer context from the upstream-consumer note alone.
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 BinderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("bind_attested_subject").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint true and destructiveHint/openWorldHint false, but the description goes well beyond them: it discloses that inputs are processed transiently and not stored, logged, or retained, that synthetic inputs are mandatory, and that execution can be routed server-side or delegated to the browser. The offline-verifiability note also clarifies that the FV-status snapshot does not create an external dependency, which is consistent with openWorldHint=false. The only omission is what the emitted artifact contains beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the title and node type, but the body is dense with template-style content: a long spec URL, a 64-character FV-status hash, and a meta-instruction to call describe_tool for the output schema. These occupy space without helping the agent decide or invoke correctly, so the description is longer than its useful payload warrants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object tool with no output schema, the description covers the safety/data-handling story and the compute-routing model, which are the main risks. It nonetheless leaves the actual decision function and the shape of policy_parameters unexplained, pointing to an external manifest, and replaces return-value documentation with a pointer to describe_tool. Adequate but not self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 already present in the schema and adds no field-level meaning for parent_hashes/parent_tool_ids ordering or policy_parameters contents (it defers to 'the tool's manifest'). 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource class (an OpenChainGraph compute node tagged compliance_control) and the output (an AP2 artifact carrying execution_hash for chain provenance), which is more than a restatement of the title. However, it never explains what 'binding an attested subject' actually computes or what business decision the node performs, so an agent cannot fully distinguish it from the many other bind_*/attest_* siblings. The functional core is left to the spec URL 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.
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, gpu:true always delegates) and instructs the caller to use synthetic or anonymised inputs, which is invocation hygiene rather than when-to-use guidance. It never says when this binder should be selected over siblings such as bind_agreement_acceptance or validate_input_attestations, nor what preconditions or upstream artifacts are required. 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_226j_response_evidence_pack226J Response Evidence Pack BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_226j_response_evidence_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive and closed-world, and the description adds genuinely new behavioral facts beyond them: deterministic computation, transient processing with no storage/logging/retention, server-vs-browser delegation semantics, and an execution_hash for chain provenance. It stops short of describing the artifact contents, but this is strong 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body carries boilerplate ('OpenChainGraph compute node', 'Deterministic OpenChainGraph compute node' restated), a raw 64-hex-character FV-status URL, and a note about offline receipt verification that does not help an agent select or invoke the tool. It is not padded to the point of unusability, 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.
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 a nested policy_parameters object and no output schema, the description covers compute modes, chaining inputs, artifact export and data-handling posture, and it routes the agent to describe_tool for the output schema. The remaining gap is that the actual decision inputs inside policy_parameters are documented nowhere (schema uses additionalProperties with no field names), which is material for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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. The one notable omission is policy_parameters, whose field names are deferred to 'the tool's manifest' rather than explained, but the schema itself already sets that expectation. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (a 226J response evidence pack) and a specific action (build/export an AP2 artifact), so the verb+resource is present. However, it never explains what a 226J response evidence pack contains or what domain problem it solves, and it offers no differentiation from the many sibling pack builders (build_evidence_pack, assemble_aiuc1_evidence_pack, compile_nav_error_evidence_pack, etc.). 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is real usage context: the upstream artifact it consumes (art-299-aca-esrp-exposure), the instruction to use synthetic/anonymised inputs only, and the compute-mode selection rules. But there is no guidance on when to choose this tool over the near-identical sibling evidence-pack builders, which is the decision an agent actually faces. Implied rather than explicit usage.
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 NoticeARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_adverse_action_notice").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 detail: transient processing with no storage/logging/retention, browser-delegation behaviour for gpu:true or compute:'browser', and an exported AP2 artifact carrying execution_hash for chain provenance. The FV-status note clarifies the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the text is repetitive ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node') and carries heavy meta-content such as the long FV-status hash path and an external URL that crowd the actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 compensates by naming the return shape (computed result vs browser delegation URL) and the exported AP2 artifact with execution_hash, and it routes to describe_tool for the full output schema. Combined with 100% schema coverage on inputs, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute-mode nuance, which is largely duplicated by the schema's own enum description; baseline 3 applies when the schema carries the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Build Adverse Action Notice') and categorises it as a compliance_mandate OpenChainGraph compute node, and it names the downstream sibling (art-227-validate-adverse-action-notice). It stops short of stating what the notice actually contains or computes, so an agent knows the resource but not the substance of the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a hard usage constraint ('Use synthetic or anonymised inputs only') and explains the compute-mode defaults, and it implies the follow-on tool. However it never states when this tool should be selected versus alternatives, nor any prerequisites beyond the synthetic-input rule.
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 ComposerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_agent_incident_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored or logged, synthetic inputs are required, compute mode semantics are explained, and the output is an AP2 artifact carrying an execution_hash. That is meaningful operational detail beyond the annotations, though it omits any failure modes or delegation-URL specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with infrastructure boilerplate, a long FV-status URL and a 64-hex digest, and a pointer to describe_tool, none of which help an agent decide to call the tool. The actual purpose is buried behind compute-mode mechanics, so it is not front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters object, the description should clarify returns; it partially does by naming the exported AP2 artifact and execution_hash, and it defines the compute modes. However, it never characterizes the incident-record content itself, leaving a real gap for a compositor tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 behavior but adds no syntax, ordering, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a near-tautological restatement of the name/title ('Agent Incident Record Composer: OpenChainGraph compute node') and never says what an agent incident record actually contains or when it should be composed. It hints at output ('Exports an AP2 artifact with execution_hash for chain provenance') but the core verb+resource purpose is left to inference, and nothing distinguishes it from siblings like build_idv_verification_incident_record or build_ai_decision_log_record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 and no named alternative among the many build_* incident/record siblings. The only usage-shaped instruction is 'Use synthetic or anonymised inputs only,' which is a 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.
build_agent_test_evidenceQuarterly Agent Test Evidence ComposerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_agent_test_evidence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 well beyond them: it explains server-side vs browser compute routing, that gpu:true nodes always delegate, that inputs are processed transiently and not stored/logged/retained, and that the output is an AP2 artifact with execution_hash and an offline-verifiable FV-status snapshot. This is substantial behavioral disclosure, though the compute-routing details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is dense but front-loaded with the compute-node framing, and repeats 'OpenChainGraph compute node' twice in the opening. Long URLs and a raw FV-status hash consume space that could carry clearer purpose/usage content, so it is not wasteful but not tight either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, a nested object, and no output schema, the description supplies meaningful compute-mode and provenance context. However, it leaves policy_parameters field names to an external manifest and points the agent to describe_tool for the output schema, so key calling details remain outside the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 enum semantics and adds no syntax or format detail beyond it; for policy_parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name is effectively restated ('Quarterly Agent Test Evidence Composer' / 'compliance_mandate' node) and the description leads with boilerplate about being an OpenChainGraph compute node rather than stating plainly what evidence it produces or from what inputs. It does eventually clarify the output ('Exports an AP2 artifact with execution_hash for chain provenance'), which lifts it above tautology, but it never distinguishes itself from close siblings like compose_control_test_evidence 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.
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. The only usage-adjacent instruction is 'Use synthetic or anonymised inputs only,' which is a 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.
build_agent_traffic_policyAgent-Traffic Acceptance Policy BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_agent_traffic_policy").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic execution, transient non-stored/non-logged inputs, synthetic-input-only guidance, and browser delegation for gpu:true nodes. These are concrete behavioral facts an agent should know, though the export side effects could be described more precisely.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool identity and pipeline role, but several sentences (the literal URL, the FV-status receipt paragraph) are boilerplate that does not help an agent invoke the tool, and compute semantics are repeated from the schema. Moderate bloat rather than tight, purposeful prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a node with no output schema, the description does convey that the return is an AP2 artifact with execution_hash and points to describe_tool for the output schema. However, the core decision inputs live in an opaque nested policy_parameters object whose field names are deferred to 'the tool's manifest', leaving the central functionality under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 adds no syntax or format detail, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'agent_guardrail_mandate' and says it exports an AP2 artifact, which hints at its output. But it never explains what an 'agent-traffic acceptance policy' actually is or what the decision function produces, so the purpose stays vague rather than being 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use vs alternatives guidance against the many sibling policy/guardrail tools. The chain wiring ('Consumes upstream artifacts from art-20-...', 'Output feeds: ptg-01-...') implies where it sits in a pipeline, which is useful implied usage, but no condition or exclusion is stated.
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 BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_ai_conformity_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, transient server-side processing with no storage/logging/retention, and a browser-delegation fallback for gpu:true nodes. The FV-status receipt explanation ('a snapshot, not a subscription... verifies offline') adds provenance semantics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Only the first and last clauses serve tool selection; the middle is heavy infrastructure boilerplate — a full URL, a 64-char hash, and meta-commentary about snapshot vs subscription receipts. For an agent choosing a tool, this volume of non-decisive text dilutes the signal rather than earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, 4 params including a free-form nested policy_parameters object, the description should say more about what the exported pack contains and what fields policy_parameters expects. It compensates by covering compute modes and chaining and by routing to describe_tool, but the artifact payload itself remains opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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' default rather than extending it, and explicitly defers policy_parameters field names to 'the tool's manifest,' adding no semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as the 'AI Act Conformity Pack Builder' and states it 'Exports an AP2 artifact with execution_hash for chain provenance,' which is a specific verb+resource. The upstream/downstream artifact list (art-64-ai-act-highrisk-fit-diagnostic in, Article 9 risk-mgmt builder and credit-scoring conformity out) lets an agent place it in the graph relative to siblings like 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real routing context via named upstream/downstream artifacts and a 'use synthetic or anonymised inputs only' constraint, plus compute-mode selection rules. But it never states when to choose this pack builder over the many close siblings (assemble_aiuc1_evidence_pack, build_evidence_pack, assess_ai_act_conformity), leaving the primary 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.
build_ai_decision_log_recordAI Decision Log Record Builder (EU AI Act Art 12)ARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_ai_decision_log_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior beyond that: transient processing with no storage/logging/retention, the browser-delegation return path, and an AP2 artifact export with execution_hash. It stops short of describing error modes or the exact returned artifact shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and informative, but padded with boilerplate: the repeated 'OpenChainGraph compute node' phrasing, a long FV-status URL plus hash, an HTML link, and an output-schema pointer to describe_tool. Several sentences could be trimmed without losing agent-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers compute routing, chaining inputs, data-handling guarantees, export format, and downstream feeds. The main residual gap is what the returned AP2 artifact/execution_hash payload looks like, which is only pointed to indirectly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute modes and chaining but adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('AI Decision Log Record Builder') with a regulatory anchor (EU AI Act Art 12) and identifies it as an OpenChainGraph compute node. It also names sibling tools downstream (art-237-validate-agent-audit-trail, art-238-classify-annex3-decisioning-obligations), giving partial differentiation, but never explicitly contrasts itself with the many other build_* record builders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied. The description explains the selected compute mode ('auto' vs 'browser'), and warns to 'use synthetic or anonymised inputs only', but gives no explicit when-to-use/when-not or which sibling to pick over this one. An agent still has to infer the scenario from the title.
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 RecordCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_ai_training_data_lineage_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: compute modes resolve server-side on Cloudflare Workers for gpu:false kernels, compute:'browser' returns a delegation URL, gpu:true always delegates, inputs are transient and never stored/logged, and an AP2 artifact with execution_hash is exported. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the node identity, but a large fraction is boilerplate that does not help an agent select or call the tool: the FV-status paragraph, a full 64-hex hash URL, and a repeated explanation of compute delegation already present in the schema. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a build tool with no output schema, the description covers privacy and compute binding but leaves the returned artifact's shape opaque, deferring to describe_tool('build_ai_training_data_lineage_record') rather than summarizing it. The nested policy_parameters object is also left to external lookup, so an agent cannot fully anticipate inputs or outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (largely duplicating the enum description) but adds nothing about parent hash ordering or policy_parameters field names, merely 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the node as a 'compliance_mandate' OpenChainGraph compute node and says it 'Exports an AP2 artifact with execution_hash for chain provenance,' which hints at output. But it never plainly states what a training-data lineage record contains or does, leaning on the name/title and infrastructure mechanics instead, and it does not distinguish itself from siblings like record_model_input_lineage or compile_model_risk_lineage_pack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use versus alternatives guidance anywhere. The only constraint offered is 'Use synthetic or anonymised inputs only,' which is an input restriction, not routing advice. An agent gets no signal about when this tool is the right pick over the many other lineage/build tools.
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 RecordCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_ai_workpaper_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses substantive behavior: 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 output is a chained AP2 artifact carrying execution_hash. It also explains the offline FV-status receipt semantics. These are real behavioral facts an agent could not get 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense block mixing purpose, compute semantics, privacy notes, artifact format, a full URL and a 64-character hash string. The URL and hash digest are selection-irrelevant clutter, and the closing 'call describe_tool(...)' line is confusing given no output schema exists. Front-loading is partial but the whole is bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers execution modes, data handling, chaining inputs and the exported artifact, which is reasonable. But it defers the actual decision-function field names to an external manifest and never explains what the produced workpaper record contains, leaving a substantive gap for a 4-parameter nested tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 text largely restates it. It adds only the chaining intent (parent hashes from upstream artifacts) at the level the schema already conveys. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and opening line identify a specific artifact (an AI-tool-usage workpaper record) and its container (an OpenChainGraph compliance_mandate compute node) that exports an AP2 artifact with an execution_hash. However, the description never says what a workpaper record actually contains or why one builds it, and it does not distinguish this tool from near-identical siblings such as build_ai_decision_log_record or build_ai_training_data_lineage_record. Purpose is inferable but buried under platform jargon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is one operational constraint ('Use synthetic or anonymised inputs only') but no statement of when to choose this tool over the many sibling record-builder tools, nor any prerequisite or exclusion. The compute-mode explanation describes how execution happens, not 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.
build_allocation_decision_receiptBuild Allocation Decision ReceiptBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_allocation_decision_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 execution, server-vs-browser compute routing, gpu:true forcing browser delegation, transient non-stored/non-logged inputs, and that the FV-status file is a snapshot that does not need re-fetching. These are non-obvious operational behaviors consistent with the annotations. It could still say more about what policy_parameters must contain, but this is above 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute/privacy/export information is front-loaded and mostly earns its place, but the description is dense with repeated 'OpenChainGraph compute node' phrasing, an inline URL, and a trailing pointer telling the agent to call describe_tool for the output schema—content that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations gap, and 4 parameters (one nested), the description covers compute semantics and privacy well but leaves the receipt's actual output shape and the meaning of the 'allocation decision' under-specified, deferring to describe_tool. Adequate but incomplete for a tool that emits a provenance artifact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the compute-mode routing nuance that mirrors the schema, but does not clarify how policy_parameters fields are discovered ('See the tool's manifest') beyond what is already present. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the artifact ('AP2 artifact with execution_hash') and its domain ('attestation_mandate' OpenChainGraph compute node), so the agent can infer it produces a provenance-bearing receipt. However, the opening leans on compute-node jargon and never states in plain terms what an 'allocation decision' is or what decision function is being attested, and it does not distinguish itself from siblings like emit_chaingraph_artifact 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute modes but gives no when-to-use / when-not-to-use guidance and never names an alternative sibling. The only constraint offered 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.
build_amortization_scheduleAmortization Schedule BuilderCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_amortization_schedule").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage/logging/retention, server-vs-browser delegation semantics for gpu nodes, and export of an AP2 artifact carrying execution_hash for provenance. That is meaningful disclosure beyond the structured fields, though return payload shape is deferred to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with boilerplate: an FV-status receipt paragraph, a full URL, and a long hash, plus a repeated 'Deterministic OpenChainGraph compute node' phrasing. The actual functional content is buried, and the 'Output schema: call describe_tool(...)' line pads rather than informs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object, no-required-param compute node with no output schema, the description covers compute routing, provenance chaining, and data handling reasonably. But it never describes what the amortization output contains or what policy_parameters fields are expected, leaving a real gap for a tool whose core purpose is the schedule itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 explanation largely repeats the schema's own enum description and 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title convey 'build an amortization schedule,' and the description establishes this is a deterministic OpenChainGraph compute node that exports an AP2 artifact. However, it never says what kind of amortization (loan? ASC606 commission? lease?) and spends most of its text on compute plumbing, so it does not clearly separate itself from siblings like amortize_asc606_commissions or compute_deterministic_amortization_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 a compute-mode explanation, but no guidance on when to pick this tool versus alternative amortization siblings, and no prerequisites or exclusions. 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.
build_ap2_cartmandate_hashchainAP2 CartMandate Hash-Chain BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_ap2_cartmandate_hashchain").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real value: determinism of the compute node, the server-vs-browser delegation behavior, the fact that gpu:true nodes always delegate, and that inputs are processed transiently and not retained. That non-retention and synthetic-input disclosure is exactly the kind of behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is padded with an HTML open URL, a 64-hex FV-status filename, and a meta-instruction to call describe_tool for the output schema. Several of these sentences serve verification/receipt plumbing rather than 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description compensates by naming the exported artifact and its execution_hash and pointing at describe_tool for the full schema. What remains missing is any indication of the return shape for the browser-delegation path and the concrete field names for policy_parameters, which are deferred to an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and the parent_hashes/parent_tool_ids chaining semantics. The description restates the compute-mode rules but adds no new syntax or format guidance, and it explicitly defers policy_parameters field names to 'the tool's manifest' rather than explaining them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line states a specific verb and resource: building an AP2 CartMandate hash-chain artifact via a deterministic OpenChainGraph compute node in the payment_policy class. It is distinguishable from nearby siblings like emit_chaingraph_artifact and correlate_ap2_cartmandate_x402 by naming the AP2 artifact and its execution_hash output, though the compute-node jargon dilutes the signal somewhat.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a data-handling constraint (synthetic or anonymised inputs only) and a downstream linkage ('Output feeds: art-596-ap2-x402-cart-correlation'), but never says when to pick this over build_chaingraph, emit_chaingraph_artifact, or the other AP2 builders, nor any prerequisite for chaining parent_hashes.
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 RecordBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_art5_diligence_evidence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/non-destructive, the description still adds real context: deterministic execution, transient processing with no storage/logging/retention, server-vs-browser delegation rules, consumption of upstream artifacts (art-509), and the fact that the FV-status receipt verifies offline. This meaningfully 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the title, but the body is a dense run-on of protocol jargon mixing compute routing, retention policy, provenance URLs, and an FV-status receipt path. Several clauses restate the same compute-mode logic already in the schema, diluting the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers retention, provenance chaining, and routes the agent to describe_tool for the output schema, which is adequate. However, it never characterizes the diligence decision itself, so an agent still does not know what result to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 paragraph duplicates the schema's own enum explanation almost verbatim. policy_parameters is deferred to an external manifest ('See the tool's manifest for field names'), so the description adds no semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource ('Article 5 Due Diligence Evidence Record') and that it is an OpenChainGraph compute node exporting an AP2 artifact with an execution_hash, but never explains what the Article 5 diligence computation actually produces or decides. It is largely a restatement of the title plus infrastructure boilerplate, and it draws no distinction from the many sibling build_*_evidence tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is one directive ('Use synthetic or anonymised inputs only') and an explanation of compute routing, but no statement of when this tool should be selected over alternatives, nor any prerequisites. The compute-mode text describes how it runs, not when to choose it.
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 BuilderARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_cbcr_report").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored or logged, browser delegation occurs for gpu:true nodes, and the output is an AP2 artifact carrying an execution_hash for provenance. This is meaningful disclosure beyond the annotations, though nothing is said about failure modes or output shape beyond the describe_tool pointer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first clause, but the body is an undifferentiated run-on covering compute binding, privacy, provenance, downstream feeds, a URL, and an FV-status hash and snapshot disclaimer. Several of these (the offline-receipt caveat, the full hash) do not help an agent decide or invoke and dilute the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers compute semantics, data-handling, and the provenance-bearing return artifact, and explicitly points to describe_tool for the output schema. The remaining gap is the actual decision-function fields inside policy_parameters, which are left to external references.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum documentation, and it defers policy_parameters field names to "the manifest" (as the schema also does), adding little beyond what is structured.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening states a specific verb+resource: an OECD Country-by-Country Report builder, tagged to the compliance_mandate family, and it names a downstream consumer (art-473-interquartile-benchmark) that helps an agent place it. It is however buried under OpenChainGraph infrastructure boilerplate rather than leading with what the report is for, so it is clear but not sharply distinguished from 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives operational guidance for compute="auto"/"server"/"browser" and an input-hygiene constraint ("Use synthetic or anonymised inputs only"), but never states when to reach for this tool versus siblings like benchmark_tp_interquartile_range. Usage is implied by the compliance-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_chaingraphBuild an executable ChainGraph DAGARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_ids | No | Explicit ordered list of ChainGraph node tool_ids to wire. | |
| target_tool_id | No | A ChainGraph node tool_id (e.g. "art-15-agent-commerce-conformance"). Builds the chain that produces it. |
TDQS
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.
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.
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.
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.
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.
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 BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_claim_dispute_bundle").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses meaningful behavior: inputs are processed transiently and not stored, logged, or retained; synthetic/anonymised inputs are required; compute:auto vs browser changes execution location and may return a delegation URL. These are useful operational details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats the name three times ('Claim Dispute Bundle Builder: OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and the FV-status hash block is verbose, though the compute/retention facts are reasonably front-loaded. It is not wasteful to the point of uselessness, but it is not tight either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex compute tool with no output schema, the description covers retention, provenance, and upstream dependencies but defers the output shape to describe_tool and never describes what the built bundle contains or what policy_parameters fields mean. It is adequate on process, thin on substance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 modes but adds no semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'Claim Dispute Bundle Builder' compute node and states it exports an AP2 artifact with execution_hash, but it never explains what a claim dispute bundle actually contains or what decision function it runs. Most of the text is boilerplate about compute modes and provenance rather than the tool's specific purpose, leaving it distinguishable from siblings only by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many sibling build_* tools. The only contextual hook is that it 'Consumes upstream artifacts from: art-306-agent-insurability-evidence-scorer', which hints at a pipeline position but does 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.
build_conditional_relief_collateral_receiptConditional-Relief Collateral ReceiptBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_conditional_relief_collateral_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, it discloses that execution is deterministic, that inputs are processed transiently and not stored/logged/retained, that browser delegation may occur, and that the FV-status snapshot verifies offline. These are meaningful behavioral facts not derivable from annotations. It stops short of describing error 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense run-on that front-loads infrastructure jargon rather than the tool's purpose, and includes low-value items like a literal URL and a long FV-status hash path. The compute and privacy sentences earn their place, but overall it is over-stuffed and not well structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers execution modes, privacy handling, and provenance export, and points to describe_tool for the output schema. It leaves the actual computed semantics of the receipt and the shape of policy_parameters unexplained, which is a meaningful gap for a decision-function node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 what the schema already documents (compute auto/server/browser semantics, parent_hashes chaining). The policy_parameters field is deferred to the tool manifest rather than clarified, so the description adds little beyond the structured schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the node class (compliance_control) and states that it exports an AP2 artifact with execution_hash, which gives some sense of the output. However, it never explains what a 'conditional-relief collateral receipt' actually represents or what the decision function computes, so an agent cannot tell the tool's real purpose from the surrounding infrastructure boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one operating constraint ('Use synthetic or anonymised inputs only') and explains compute modes, but offers no guidance on when this tool is appropriate versus the many sibling receipt/build tools (build_session_receipt, build_conversion_receipt, etc.). No alternatives 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.
build_conversion_receiptConversion Receipt BuilderARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_conversion_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the description goes further with genuinely useful behavior: transient processing with no storage, logging or retention, the server-vs-browser delegation semantics, and AP2 artifact/execution_hash provenance. This is real added context beyond the annotations. It does not describe failure modes or the return shape, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool identity, but it is a dense run-on mixing compute semantics, privacy statements, provenance, a URL, and an FV-status path. Several clauses earn their place; others (the raw HTML link and FV-status filename) are noise that could be compressed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compute node with nested policy_parameters and no output schema, the description covers compute mode, data-handling guarantees, provenance, and points the agent to describe_tool for the output schema. It is largely complete, though it never explains what policy_parameters actually accepts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute enum; the baseline is 3. The description restates compute-mode semantics (also in the schema) but adds nothing about parent_hashes, parent_tool_ids, or policy_parameters beyond what the schema says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('build_conversion_receipt' / Conversion Receipt Builder) and frames it as an OpenChainGraph compute node that 'Exports an AP2 artifact with execution_hash for chain provenance.' It also routes to the downstream verifier ('Output feeds: art-192-conversion-receipt-verifier'), giving sibling differentiation against verify_conversion_receipt. The heavy jargon dilutes it slightly, but the purpose is discernible.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute modes ('auto' vs 'browser' vs server-side) and states 'Use synthetic or anonymised inputs only,' which is meaningful operating guidance. However, it never states when to use this builder versus the sibling verifier or other receipt builders; usage is implied rather than explicitly framed.
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 BuilderCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_digest_manifest").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond them — transient processing with no storage/logging/retention, the server-vs-browser delegation split, and determinism. It is consistent with readOnlyHint (a computed response rather than a stored mutation), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated and repetitive ('OpenChainGraph compute node' / 'Deterministic OpenChainGraph compute node' stated twice), and front-loads category jargon rather than the tool's actual purpose. Boilerplate about the FV-status snapshot and a URL crowd out the information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compute node with full schema coverage it covers compute routing, data-handling policy, the emitted AP2 artifact/execution_hash, downstream consumption, and points to describe_tool for the output schema. The gap is that the core deterministic computation and the meaning of policy_parameters fields are left to 'the tool's manifest,' leaving the agent without the essential semantic.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 each documented in the schema itself. The description's compute-mode passage largely repeats the enum semantics already in the schema and does not add meaning for parent_hashes/parent_tool_ids, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title give the verb+resource (build a digest manifest), and the description identifies it as a 'cryptographic_mandate' compute node and notes the output feeds art-191-conversion-receipt-builder. However, it never explains what a digest manifest actually is or what the tool computes; the body is dominated by compute-routing jargon. An agent learns its category but not its concrete function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 a data constraint rather than a when-to-use rule. There is no comparison to related siblings like build_chaingraph, emit_chaingraph_artifact, or build_conversion_receipt, and no stated preconditions for choosing this tool over them.
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 manifestARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| entries | Yes | List of {path,size,digest,content_type} -- the caller has already hashed each file. | |
| room_label | No | Label for the disclosure room. |
TDQS
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.
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.
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.
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.
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.
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-ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_dora_roi_register").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value: server-vs-browser compute delegation semantics, transient processing ('not stored, logged, or retained'), and the AP2 artifact with execution_hash for provenance. It does not contradict the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the text repeats boilerplate ('Deterministic OpenChainGraph compute node' appears twice), restates the title verbatim, and carries a full FV-status URL plus a 64-character hash inline. The trailing 'call describe_tool(...)' pointer is redundant with the tool catalogue itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a nested-object builder tool with no output schema. The description never explains what policy_parameters must contain to actually build a DORA RoI, deferring to a manifest the agent cannot see, so an agent lacks the information needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters; that sets the baseline at 3. The description's compute-mode explanation largely duplicates the schema text and explicitly defers policy_parameters field names to 'the tool's manifest', adding no parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title line states a specific verb and resource: 'DORA Register of Information (RoI) Builder & Cross-Validator'. An agent can tell this produces a RoI register. However, the body never elaborates on what building/validating a RoI entails and never distinguishes it from the nearby sibling compute_dora_roi_gleif_preflight_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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives regulatory deadline context ('2027-01-31 annual submission cycle') and an input constraint ('Use synthetic or anonymised inputs only'), but never says when to choose this tool over the sibling RoI/GLEIF/preflight or DORA readiness tools, and offers no when-not guidance.
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 EvidenceCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_dual_control_certification").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 earns credit by adding real context: transient processing with no storage or logging, the 'use synthetic or anonymised inputs only' restriction, GPU-driven browser delegation, and an execution_hash bearing AP2 artifact for provenance. It stops short of clarifying determinism guarantees or error behavior, but this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with repeated boilerplate ('Deterministic OpenChainGraph compute node', compute-mode rules stated twice), an inline documentation URL, and a long fv-status hash/path that are not actionable for tool selection. The genuinely useful constraints 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.
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 at least name the return artifact (AP2 export with execution_hash) and delegates output detail to describe_tool, which is a reasonable hand-off. However, for a 4-parameter tool with a nested policy_parameters object and a compliance-decision purpose, it never explains what the certification asserts or how the chaining inputs should be assembled, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mirrors the enum documentation rather than extending it, and it does not clarify the meaning or required coupling of parent_hashes/parent_tool_ids beyond what the schema already says. policy_parameters field names are explicitly deferred to 'the tool's manifest', adding nothing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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)' plus 'Exports an AP2 artifact with execution_hash for chain provenance' indicate this produces a certification artifact, but the description never says what a dual-control certification actually evaluates (e.g., two-person control / segregation-of-duties evidence). An agent learns the delivery mechanism, not the subject matter, and no sibling (e.g., check_sod_matrix, compose_control_test_evidence) is distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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-like text concerns compute modes, which is invocation mechanics rather than tool selection, and even that duplicates the schema enum.
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 BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_einvoice_transmission_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds meaningful non-structured context: server- vs browser-side compute routing, transient processing with no storage or logging, and the exported AP2 execution_hash for chain provenance. It stops short of describing anything about failure modes or what the receipt actually asserts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Much of the text is shared infrastructure boilerplate (compute binding, Cloudflare Workers, FV-status hash snapshot) that is not specific to this tool, diluting the tool-specific content. It is front-loaded with a restatement of the title before reaching the useful clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chained compute node with a nested policy_parameters object, the description defers field names to an external manifest and defers output structure to describe_tool, leaving genuine gaps. The chain inputs (parent_hashes / parent_tool_ids) are at least implied, but the definition is only adequate, not self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 repeats the compute-mode semantics and mentions chaining, but adds no syntax or format detail beyond what the schema already supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The definition states the resource ('E-Invoice Transmission Receipt') and the concrete output ('Exports an AP2 artifact with execution_hash for chain provenance'), and names the upstream artifact it consumes (art-295). But the functional purpose is buried under generic OpenChainGraph compute-node boilerplate, and it does not explicitly differentiate itself from nearby siblings like route_einvoice_jurisdiction_mandate or validate_einvoice_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when-to-use guidance, no prerequisites, and no named alternatives. An agent learns nothing about which of the many e-invoice sibling tools this replaces or complements.
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 BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_etr_possession_chain").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior. The description adds valuable context: compute modes (auto/server/browser), transient input processing (not stored/logged/retained), output AP2 artifact with execution_hash, and offline FV-status verification. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the tool name and node type, but includes lengthy compute-mode details, a URL, and FV-status metadata that could be trimmed. The structure is acceptable but not tightly focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex tool with no output schema, the description explains the return artifact (AP2 artifact with execution_hash) and data handling. It defers policy_parameters details to the manifest and lacks explicit usage guidance, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds little parameter-specific meaning beyond what the schema provides, such as the compute mode explanation which is also in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (build) and resource (ETR Possession-Chain Receipt), and clarifies it's a deterministic compute node exporting an AP2 artifact. However, it does not differentiate from the many sibling build_* tools beyond the artifact name, which is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It implies usage by mentioning consumption of upstream artifacts from art-352-etr-control-evidence-checker, but leaves the agent to infer context and alternatives.
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. Optionally carries a run_chain decision_trail (per-step reason codes: gate rule id, escalation rule id, input_required cause) as pack-level metadata so an auditor-facing pack answers "why did each step happen" without a second round-trip.
| Name | Required | Description | Default |
|---|---|---|---|
| sd_jwt | No | When true, also return an SD-JWT export of the HA bundle (mirrors ha_bundle_export, default false; no-op when ha_records is absent). | |
| framing | No | Optional framing context for the session receipt's PTG-01 regulator prompt. | |
| artifacts | Yes | Already-produced artifacts this pack documents, in call order. | |
| ha_records | No | §27 human_accountability_records -- omit entirely for no HA section. | |
| room_label | No | Label for the disclosure-manifest room. | |
| session_id | No | Session identifier to embed in the receipt, if the caller tracks one. | |
| subject_hash | No | The sha256: subject hash the pack documents (defaults to artifacts[0].execution_hash if omitted). | |
| decision_trail | No | Per-step decision reason trail from the run_chain result (pass its decision_trail — response field or composite_output.decision_trail). Carried verbatim into the pack as pack-level metadata, outside every section hash; omitted entirely when not supplied. See DECISIONTRAIL-1. | |
| kernel_version | No | Version tag of the kernel that produced verification_result. | |
| policy_version | No | Version tag of the policy the kernel was evaluated against. | |
| submission_receipt | No | Populate ONLY after a real transmission -- never fabricate (same rule as ha_bundle_export). | |
| verification_result | No | The §16/§18/§20 verdict. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the sparse annotations (all false hints), the description discloses atomic failure behavior — 'if any one section fails to build, the whole call fails isError:true... no partial pack' — and notes that it invokes the same in-process functions as the standalone tools. It also explains that decision_trail is carried verbatim as pack-level metadata, which is useful operational context. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and long, but each clause earns its place: the core composition is front-loaded, then failure semantics, then optional metadata. The use of semicolons and dashes keeps a complex idea in a few sentences, though it demands careful reading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 12-parameter assembly tool with no output schema and unhelpful annotations, the description covers the overall pack composition, the conditional sections, failure atomicity, and the decision_trail use case. The main gap is an explicit description of the return shape/fields, since there is no output schema to carry that burden.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is already 3; the description adds value by explaining the inclusion rule for ha_records, the 'keyed to the same input hashes' relationship among artifacts, and the purpose of decision_trail with example reason codes. It maps the 12 parameters into an overall composition model rather than merely repeating schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact verb and resource — 'Composes a session receipt..., an optional §27.6 HA evidence bundle..., and a disclosure manifest...' — and locates the tool against sibling standalone functions like build_session_receipt, ha_bundle_export, and build_disclosure_manifest. It also states the consolidation benefit ('replacing what today takes 4-6 separate tool calls'), which distinguishes it cleanly from those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use context: when a caller has an array of already-produced artifacts and wants a full pack keyed to the same hashes, this replaces multiple manual calls. It names the standalone tools as alternatives and marks the HA bundle and decision_trail as conditional, though it stops short of explicitly saying 'use the standalone tools when only one section is needed.'
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 BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_fria_monitoring_plan").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses substantial behavior: deterministic execution, transient processing with no storage/logging/retention, server- vs browser-side compute semantics, and export of an AP2 artifact carrying execution_hash for chain provenance. It does not mention auth requirements or rate limits, but the data-handling and execution-model disclosures are 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the remainder is boilerplate: a raw documentation URL, a full 64-character FV-status hash presented inline, redundant 'deterministic OpenChainGraph compute node' phrasing, and an instruction to call describe_tool for the output schema. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, no-output-schema compute node with nested policy_parameters, the description supplies the chaining contract (consumes art-64-ai-act-highrisk-fit-diagnostic; feeds two named downstream tools), the execution model, and a pointer to describe_tool for returns. That is close to sufficient, though it still leaves the meaning of the computed FRIA plan and its policy inputs opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 is 3. The description restates the compute binding but adds no field-level meaning, and explicitly defers policy_parameters field names to 'the tool's manifest' rather than clarifying them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (build a FRIA & post-market monitoring plan) and label it a compliance_mandate compute node, so the domain is identifiable. However the body of the description never explains what the produced plan actually contains — it pivots immediately to compute mechanics, a URL, and provenance metadata. It also does not differentiate itself from the many sibling *fit-diagnostic and evidence-pack builders beyond naming its artifact chain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is compute-mode guidance (auto/server/browser, gpu delegation) and a data constraint ('use synthetic or anonymised inputs only'), but nothing about when an agent should invoke this tool versus an alternative, no prerequisites, and no stated conditions for choosing it over sibling compliance builders. Upstream/downstream tool IDs are listed but not framed as triggering conditions.
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 & ValidatorARead-onlyIdempotentInspect
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). Output schema: call describe_tool("build_google_ap2_mandate").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering the safety profile. The description adds valuable behavioral context beyond annotations: the tool renders an interactive widget, inputs are applied via the AIN Bridge, and it runs client-side with zero PII and zero network. This meaningfully explains the execution model and reinforces the read-only, idempotent nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with clear front-loading: purpose, scope exclusion, execution model, and a concrete pointer to obtain the output schema. Every sentence earns its place with no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description routes the agent to describe_tool for the output schema and covers the core behavioral constraints (Open/Closed, external AP2 spec, client-side execution, zero PII/network). It does not define what Open/Closed means or elaborate on validate-versus-build branching, but the guidance is strong enough for a competent agent to proceed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single 'inputs' parameter, and the schema already explains that it maps input element IDs to values with prefill via AIN Bridge. The description repeats the AIN Bridge prefill concept but adds no additional parameter syntax, constraints, or format details. Baseline 3 is appropriate given the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource pair: 'Build or validate a Google AP2 Checkout/Payment Mandate VDC (Open/Closed).' It further disambiguates by explicitly targeting the external AP2 spec rather than the AINumbers Policy Mandate, making it distinguishable from nearby siblings like ap2_aml_mandate_builder 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.
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 and an explicit exclusion ('not the AINumbers Policy Mandate'), which helps route an agent. However, it does not name a specific alternative tool or provide a broader when-to-use vs when-not-to-use matrix, so it stops short of full 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 BuilderARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds meaningful context beyond them: deterministic compute, server-vs-browser delegation rules, and transient no-store/no-log/no-retention handling. That is genuinely useful behavioral disclosure; it stops short of describing failure modes or the returned artifact's full shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and compute semantics are front-loaded, but the payload is padded with low-value operational boilerplate: the full URL, an FV-status hash-path, and the 'snapshot, not a subscription' aside. These do not help an agent decide to call the tool, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description steps in usefully: it says the output is an AP2 artifact carrying execution_hash and feeds a named downstream composer. Combined with the transient-processing note, an agent has enough to call it correctly, though the shape of the receipt itself is not detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 defers policy_parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it 'Exports an AP2 artifact with execution_hash' for an IDV/KYC session receipt, so the agent knows the concrete output. However, it does not distinguish itself from near-identical siblings such as build_session_receipt and build_vop_session_receipt, leaving selection ambiguity among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 names the downstream consumer (art-418-idv-verification-failure-incident-composer), which implies context. But there is no explicit when-to-use versus the sibling receipt builders, and no stated prerequisites, 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_idv_verification_incident_recordIDV/KYC Verification-Failure Incident ComposerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_idv_verification_incident_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover read-only/idempotent/non-destructive, so the remaining burden is small, and the description adds real value: the transient-processing/no-retention guarantee, the requirement to use synthetic or anonymised inputs, the server-vs-browser delegation behavior, and the AP2 export with execution_hash for provenance. It still doesn't say what the composed incident record contains or when browser delegation would be returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph that front-loads the name and then mixes compute-binding mechanics, privacy, chaining provenance, an external URL, and FV-status boilerplate — including a hash that will age and a URL that is irrelevant to invocation. The actual purpose sentence is buried and there is no structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers privacy, compute binding, chaining and provenance, which is good for a compute node, but the core question — what the incident record decision function evaluates and returns — is deferred to describe_tool. With no output schema and an unconstrained policy_parameters object, the description should say more about the output artifact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 consistently with the schema but adds no field-level meaning beyond it; policy_parameters is left entirely to 'see the tool's manifest', which the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Title and opening line give a specific verb + resource: composing an IDV/KYC verification-failure incident record, in the compliance_mandate domain. It states it consumes upstream artifacts from a named sibling (art-359-idv-session-receipt-builder), which distinguishes it from the generic build_* brothers, though the description never says what the incident record actually contains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use/when-not guidance is given. The upstream dependency on art-359-idv-session-receipt-builder is mentioned, but the agent is not told under what conditions to call this versus e.g. build_idv_session_receipt or build_agent_incident_record. The compute mode paragraph is about mechanism, not selection.
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 BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value: transient processing with no storage/logging/retention, the 'use synthetic or anonymised inputs only' constraint, and the deterministic hash-bearing AP2 export for chain provenance. What is missing is any note on failure modes or what a browser-delegation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats itself ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.'), and the trailing FV-status URL plus verification caveat occupy space disproportionate to their selection value. The compute-mode explanation is useful, but the definition could be materially shorter without losing decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, no-output-schema compute node, the definition covers the execution model, input handling policy, provenance export, and pipeline position well enough for an agent to call it correctly. The main gap is the absence of any return-shape hint (server result vs browser delegation URL) now that compute:'browser' can change the response type.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics, and the policy_parameters pass-through are already documented in the schema. The description restates the compute-mode behavior but adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'Mastercard Agentic Token Scope Builder' compute node but spends most of its words on the OpenChainGraph runtime mechanics rather than on what scope/artifact the tool actually produces. A specific verb+resource is present in the title, but the body does not sharpen it beyond that, so distinguishing it from the many other 'build_*' siblings requires inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative, but the description does provide chaining context ('Consumes upstream artifacts from: art-22..., art-23...' and 'Output feeds: art-18..., ptg-01...') that implies when this node fits in a pipeline. That is meaningful implied guidance rather than none, though the agent must still 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.
build_model_inventory_entryModel Inventory Entry BuilderCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_model_inventory_entry").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context beyond them: transient processing with no storage or logging, a requirement to use synthetic or anonymised inputs, the auto/server/browser compute-mode semantics and browser delegation, and an AP2 artifact with execution_hash for provenance. That is meaningful disclosure for an operation whose side effects are otherwise ambiguous.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded boilerplate ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') repeats itself, and the fv-status URL/hash and 'a snapshot, not a subscription' aside consume several lines without helping an agent decide or invoke. The substantive compute-mode and data-handling content is buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 handles that by pointing to describe_tool, and it covers compute modes, provenance chaining, and data-handling policy. However, for a tool whose core payload is policy_parameters, it gives the agent no way to know what inputs to supply without an external manifest lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 provenance chaining but adds no new parameter-level detail — notably it defers policy_parameters field names to an external manifest rather than enumerating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a verb+resource ('build ... model inventory entry') and classifies it as a compliance_control compute node, but never explains what a 'model inventory entry' contains or what decision function the policy_parameters drive. Many siblings (build_ai_training_data_lineage_record, record_model_input_lineage, compile_model_risk_lineage_pack) also construct model-governance artifacts, and nothing here distinguishes this one from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus the numerous sibling builders. The only routing hint is downstream ('Output feeds: art-451-model-outcome-analysis'), which tells the agent what consumes the output, 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_no_russia_clause_packNo-Russia-Clause Pack BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_no_russia_clause_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful behavior: compute-mode execution semantics, browser delegation URLs, transient non-retention of inputs, and artifact export with execution_hash. It never contradicts the annotations, and the privacy/compute disclosures genuinely exceed what the structured fields provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with boilerplate: a full 64-character FV-status hash, a documentation URL, and a describe_tool pointer all compete with the actual purpose. The useful content is not front-loaded, and several sentences (compute-binding verbosity) restate the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex chained compute node with a nested free-form policy_parameters object and no output schema, the description covers the execution model and provenance chain well, but never explains what the decision function actually produces or what the policy_parameters fields are, leaving the agent to fetch the output schema via describe_tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute parameter's own schema description. The policy_parameters object points to 'the tool's manifest' for field names, adding no semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ("No-Russia-Clause Pack Builder: OpenChainGraph compute node (disclosure_template)"), which is close to tautological, and buries the actual function until it mentions exporting an AP2 artifact with execution_hash. It does eventually convey the resource (a no-Russia clause pack) and its provenance role, but the reader has to wade through compute-binding boilerplate to get there.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real routing context: consumes upstream artifacts from art-95-circumvention-diligence-assessor and output feeds cry-04-merkle-batch-verifier, plus 'use synthetic or anonymised inputs only'. However, it never states when to select this tool over alternatives or what preconditions gate a valid call, so the 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.
build_pld_disclosure_packPLD Disclosure Pack BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_pld_disclosure_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 bar is lower. The description still adds real behavior beyond that: server vs browser compute routing (gpu:true always delegates), transient input processing with no storage/logging/retention, deterministic computation, and a provenance-bearing AP2 export.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with name and node type, but the body is a run-on of infrastructure boilerplate: compute-binding details, an OpenChainGraph URL, a long FV-status paragraph including a hash and an offline-verification sentence. 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.
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 defers return-value details to describe_tool("build_pld_disclosure_pack"). Operational behavior (compute modes, privacy, export artifact) is covered reasonably well, but the functional semantics of the pack and how the nested policy_parameters drive the result are left unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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, which sets the baseline at 3. The description restates the compute modes (duplicating the enum) and only says to 'See the tool's manifest for field names' for policy_parameters, adding no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 execution_hash', which gives a verb and resource, but it never explains what a PLD disclosure pack actually contains or what compliance problem it solves. Most of the text is infrastructure meta (compute routing, FV-status receipt, URLs) rather than functional purpose, and no sibling (e.g. build_disclosure_manifest, build_ai_conformity_pack) is distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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'). There is no statement of when to choose this tool over its many build_*/assemble_* siblings, 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.
build_product_lineageDigital Product Passport Cradle-to-Gate Lineage BuilderARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_product_lineage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds substantive behavior beyond them: deterministic compute, transient input processing ('not stored, logged, or retained'), compute:auto vs browser delegation semantics, and export of an AP2 artifact with execution_hash. The safety profile is covered by annotations; the added data-handling and provenance behavior is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening restates the title verbatim and the compute/delegation clause largely duplicates the schema's compute description, so some sentences do not earn their place. It is front-loaded with purpose and the chain routing, but the boilerplate is heavier than needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compute node with no output schema, the description covers the compute/delegation behavior, data-handling constraints, provenance output, and pipeline position, and points to describe_tool for the return shape. It is largely complete, with the main gap being no explicit failure/delegation outcome detail beyond 'returns a URL'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 identically in both places, so the description adds no parameter meaning beyond the schema. Baseline 3 is appropriate; parent_hashes/parent_tool_ids semantics come entirely from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('build_product_lineage' → DPP cradle-to-gate lineage) and situates it in a chain ('Consumes upstream artifacts from art-115...', 'Output feeds art-117...'), which helps distinguish it from generic siblings like build_chaingraph or build_ai_training_data_lineage_record. It is clear, though the title/name restatement in the first sentence adds little.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides usage context via the upstream/downstream artifact chain and the 'Use synthetic or anonymised inputs only' constraint, plus compute-mode routing. However, it never says explicitly when to choose this over alternatives such as validate_dpp_data_carrier or verify_product_authenticity; the routing is implied by the pipeline description rather than stated as guidance.
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 ReceiptARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_public_money_settlement_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), the description discloses meaningful traits: inputs are processed transiently and not stored, logged or retained; execution is deterministic; gpu:true nodes always delegate to the browser; and the FV-status file is a snapshot that verifies offline. That is substantive behavioral context, though return format and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is boilerplate-heavy, repeating the tool name/title, restating compute mode twice, and embedding a URL plus a long FV-status hash path. 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.
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 no output schema, the description covers chaining (parent_hashes), compute mode, and data-handling guarantees, and points to describe_tool for the output schema. It nonetheless leaves the actual decision inputs (policy_parameters fields) opaque, referring 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 defers policy_parameters fields 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (public-money settlement receipt) and states the concrete output: an AP2 artifact with execution_hash for chain provenance, produced by a deterministic compliance_control compute node. It is clear enough to know what the tool yields, but it never explains what a public-money settlement receipt semantically attests to, and it does nothing to differentiate itself from the many sibling build_*_receipt tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real guidance for the compute parameter (auto/server/browser, gpu:true always delegates) and a constraint (use synthetic or anonymised inputs only). However, it never says when to choose this receipt over alternatives such as build_conversion_receipt or build_einvoice_transmission_receipt, 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_rights_recordRights Record BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_rights_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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/retention, the compute:'auto' vs 'browser' routing and browser-delegation URL return, and gpu:true always delegating. This is meaningful operational context that the agent cannot get from the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose-relevant facts are front-loaded, but the body is a dense run-on mixing a spec URL, an FV-status file path/hash, and a describe_tool pointer, which dilutes the operational content. The compute-mode sentence and the provenance/URLs could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry more of the return-shape burden, yet it only tells the agent to call describe_tool and defers policy_parameters field names to 'the manifest.' Nested policy_parameters plus hash-chaining semantics are left underspecified for a 4-param compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description restates compute mode (duplicated in the schema) and only implicitly ties 'Consumes upstream artifacts' to parent_hashes/parent_tool_ids; policy_parameters semantics are deferred to 'the tool's manifest.' Baseline 3 for a fully-covered schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'Rights Record Builder' node that 'Exports an AP2 artifact with execution_hash,' so the agent can infer it produces a rights record artifact. However, it never states in plain terms what a rights record contains or how this differs from siblings like compare_rights_matrix or assemble_license_terms; the type is buried under OpenChainGraph/'compliance_mandate' jargon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a prerequisite (consumes upstream artifacts from art-205-license-terms-assembler) and a safety constraint ('Use synthetic or anonymised inputs only'), which is genuine usage context. It does not say when to prefer this over the many adjacent rights/license builders, so selection remains 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.
build_safeguarding_audit_evidenceCASS 15 Safeguarding Audit Evidence PackCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_safeguarding_audit_evidence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, non-destructive, idempotent, and closed-world behavior. The description adds meaningful operational context: server-side vs browser delegation, transient processing with no storage or logging, the requirement to use synthetic or anonymised inputs only, and export of an AP2 artifact with execution_hash for chain provenance. It does not contradict the annotations and goes well beyond them, though it lacks auth/permission 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with platform boilerplate, a documentation URL, and an FV-status snapshot reference that do not help an agent select or invoke the tool. Purpose-relevant information is buried behind generic OpenChainGraph compute-node mechanics. The final instruction to call describe_tool for the output schema is useful, but overall the text 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.
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 carry more of the return-value burden, but it only says an AP2 artifact with execution_hash is exported. It does not describe what the evidence pack contains, what policy_parameters fields are expected, or what the decision function does. For a build/evidence-pack tool with a nested policy_parameters object, this leaves important invocation context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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, parent_hashes, parent_tool_ids, and policy_parameters. The description repeats the compute-mode behavior but adds no additional syntax, format, or constraint semantics beyond the schema. This meets the baseline of 3 when structured fields carry the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence restates the title and identifies a generic compute-node type, but does not explain what a CASS 15 safeguarding audit evidence pack actually is or what the tool builds. The only concrete action stated is 'Exports an AP2 artifact with execution_hash', which is generic provenance behavior rather than a purpose-specific description. It does not distinguish this tool from sibling evidence-pack builders such as 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. Compute-mode guidance is about execution plumbing, not about selecting this tool over sibling tools for CASS 15 safeguarding evidence. An agent must infer usage entirely from the name and title.
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 PackBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_sanctions_screening_evidence_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description meaningfully adds beyond them: inputs are processed transiently and not stored, logged, or retained; synthetic/anonymised inputs are required; the output is a chained AP2 artifact carrying execution_hash; and an offline-verifiable FV-status receipt is emitted. Gpu:true always-browser behavior is also disclosed. The only gap is return-format detail, which is explicitly deferred to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the pack name, then spends most of its length on compute-binding and privacy boilerplate that reads like it applies to every node in the family. The provenance and privacy sentences earn their place, but the compute-mode paragraph largely restates the schema's own compute description, so the text is longer than the tool-specific value warrants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carries more burden, and it does state the artifact type and the execution_hash provenance hook. However, with a nested policy_parameters object whose field names live only in an external manifest, the definition leaves an agent unable to determine what to pass or what a screening evidence pack will contain. Adequate but with a clear gap for a 4-parameter build tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's compute discussion duplicates that. It adds no new semantics for parent_hashes/parent_tool_ids ordering or for policy_parameters field names, which the schema itself punts 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.
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 (compliance_mandate)' that 'Exports an AP2 artifact with execution_hash', so the resource and output type are visible. But it never states in business terms what a sanctions-screening evidence pack actually does or contains — the name and title carry that meaning, not the prose. It also doesn't differentiate from siblings like build_evidence_pack, assemble_ocg_evidence_bundle, or run_sanctions_screening_fit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only rule offered is 'Use synthetic or anonymised inputs only', which is a constraint rather than a when-to-use cue. The compute-mode explanation tells the agent which transport to request but not when this tool is the right choice against siblings such as score_sanctions_screening_quality, screen_sanctions_private, or run_sanctions_screening_fit. 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.
build_session_receiptBuild a session audit receipt (Merkle root)ARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| framing | No | Optional framing context for the PTG-01 regulator prompt (e.g. "DORA incident review" or "EU AI Act Art.12 transparency log"). | |
| tool_ids | No | tool_id values corresponding to execution_hashes, in the same order. Used for the audit narrative. | |
| session_id | No | Optional agent session identifier for the audit narrative (e.g. a UUID or timestamp). | |
| prior_receipt | No | An 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_hashes | Yes | Ordered 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
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.
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.
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.
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.
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.
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 BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, and closed-world behavior. The description adds genuinely useful context beyond that: default compute ('auto') runs server-side for gpu:false nodes with a registered kernel, 'browser' forces client-side execution and returns a delegation URL, gpu:true always delegates, and inputs are processed transiently without storage or logging. These are behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded with purpose and the compute-mode behavior is relevant, but the description also carries low-value boilerplate (the ainnumbers.co URL and a long sentence about an FV-status JSON snapshot 'verifies offline'). Those trailing sentences dilute the practically useful content and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 right work by explaining compute delegation, transient processing, provenance chaining, and the upstream dependency. The one gap is policy_parameters, whose field names are deferred to 'the tool's manifest' rather than described, which is a minor incompleteness for a nested-object parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates compute modes and provenance chaining without adding format details beyond the schema, so it neither compensates nor subtracts; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('TDMRep AI Training Reservation Builder', a compliance_mandate node) and an action ('Exports an AP2 artifact with execution_hash'), so the verb+resource is inferable. However, it leans heavily on infrastructure jargon ('OpenChainGraph compute node', 'deterministic') rather than plainly stating what a TDM reservation does or how it differs from adjacent builders like build_rights_record or build_art5_diligence_evidence. An agent gets the gist but not a crisp differentiation from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 many build_* siblings. The only usage constraints given are 'Use synthetic or anonymised inputs only' and 'Consumes upstream artifacts from: art-201-iscc-content-code-generator', which is a prerequisite hint 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.
build_traiga_safe_harbor_packTRAIGA Safe Harbor Pack BuilderARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_traiga_safe_harbor_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavior beyond the annotations: deterministic compute, the server-vs-browser delegation rule, transient processing with no storage/logging/retention, and the fact that it exports an AP2 artifact carrying an execution_hash for chain provenance. Annotations cover the safety profile, and the description layers the execution and data-handling semantics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with name and node type, but it repeats the compute-binding explanation already in the schema and pads with FV-status boilerplate plus a long hash string and 'snapshot, not a subscription' language that does not 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description points to describe_tool for it and covers chaining, provenance, execution mode and privacy adequately for a parameter-light (0 required) tool. The main gap is what the pack actually contains and where it is meant to be consumed downstream.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum's schema description and adds nothing on parent_hashes/parent_tool_ids ordering or policy_parameters contents, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('build ... TRAIGA Safe Harbor Pack') and self-identifies as an OpenChainGraph compute node in the compliance_mandate family, and it names the two upstream artifacts it chains from. The actual contents of a 'safe harbor pack' are never described, so an agent knows the shape of the operation 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives operational guidance (default compute:'auto', when browser delegation happens, 'use synthetic or anonymised inputs only') and lists the upstream tools it consumes from, which implies sequencing. However there is no explicit when-to-use/when-not guidance versus the many sibling build_* pack tools, so selection still requires inference.
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 ReceiptBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_validator_change_control_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic computation, server-side vs browser delegation routing (gpu:true always delegates), transient input processing with no storage or logging, and an offline-verifiable FV-status snapshot. This is meaningful disclosure beyond the structured hints, though the safety profile itself is carried 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode paragraph largely repeats the enum description already in the schema, which is wasted space. The privacy statement and FV-status note do earn their place, but the overall block is boilerplate-heavy and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema tool with fully documented parameters, the description covers compute routing, data handling, artifact export, and the offline verification path, and points to describe_tool for the output shape. An agent has enough to call it correctly, though the receipt's semantic content remains unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum (duplicating the schema's own text) and says 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and description restate each other ('Validator Change-Control Receipt' / 'OpenChainGraph compute node (compliance_control)'), which is close to tautology. It does add that the tool exports an AP2 artifact carrying an execution_hash, but it never says what a validator change-control receipt actually attests to, and nothing distinguishes it from the many other build_*_receipt siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a compute-mode decision rule (auto/server/browser) and a data-handling constraint ('Use synthetic or anonymised inputs only'), but no guidance on when this receipt is the right tool versus alternatives like build_session_receipt or build_allocation_decision_receipt, and no preconditions for use.
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 BuilderBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("build_vop_session_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/destructive=false/idempotent), the description discloses genuinely useful behavior: compute:'auto' vs 'browser' delegation semantics, that gpu:true nodes always delegate to the browser, that inputs are processed transiently and not stored or logged, and that only synthetic/anonymised inputs are acceptable. That is a real data-handling contract the agent cannot get from annotations. It stops short of describing the artifact contents 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text repeats the node identity ('OpenChainGraph compute node' twice), echoes the title, and pads with a documentation URL and a raw FV-status hash file path that do little for tool selection. The operative facts (compute modes, transient processing, synthetic-input requirement) 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chain-provenance tool with no output schema, the description covers compute delegation and input handling but says nothing about what the receipt actually attests or what the caller receives. Pointing to describe_tool for the output schema is a partial mitigation, leaving the definition adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 chaining concept but adds no syntax or field-level meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation: building a VoP session receipt and exporting an AP2 artifact carrying execution_hash for chain provenance. That is clear enough to identify the resource. However, it never distinguishes itself from closely named siblings such as build_session_receipt, build_idv_session_receipt, or aggregate_execution_receipts, leaving the agent to guess which receipt builder applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is only an implied ordering hint ('Consumes upstream artifacts from: art-376-score-payee-name-match'), not a statement of when to use this tool versus alternatives. No prerequisites, no when-not-to-use, and no routing to sibling receipt builders are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
build_workflow_linksBuild AINumbers workflow deep-linksARead-onlyIdempotentInspect
Constructs an ordered set of ready-to-use deep-links for a named AINumbers workflow chain or an ad-hoc sequence of tools. Each link points directly to the browser tool; prefill-enabled steps accept #in=<base64url(JSON)> fragments so the tool opens pre-filled. Zero server-side execution -- all tool logic runs deterministically in the user's browser. Use this to hand a user a complete workflow: open step 1, run it, export its Policy Mandate, open step 2 (pre-filled from step 1 outputs), repeat. 374 named chains are available — enumerate them with find_chain.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | No | Name of a pre-defined chain (one of 374 — enumerate with find_chain). Mutually exclusive with steps. | |
| steps | No | Ad-hoc ordered step list. Mutually exclusive with chain. |
TDQS
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 substantial behavior beyond them: no server-side execution, deterministic in-browser tool logic, and the #in=<base64url(JSON)> prefill fragment contract. That is exactly the kind of runtime detail an agent needs and cannot get 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with what the tool produces, then the fragment mechanism, then the workflow use case, then the sibling routing hint. No sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only two well-documented params, the description still explains what the return value is (browser deep-links, optionally pre-filled), how prefill is encoded, and that execution is out of scope. Nothing an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (chain, steps) are already documented in-schema, including the mutual exclusivity and the field-to-fragment mapping. The description reinforces the fragment concept but adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Constructs an ordered set of ready-to-use deep-links') scoped to either a named chain or an ad-hoc step list. It distinguishes itself from run_chain by declaring 'Zero server-side execution' and from find_chain by naming it for enumeration, so an agent can pick it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete usage pattern ('open step 1, run it, export its Policy Mandate, open step 2...') and routes enumeration to find_chain. It stops short of explicit when-not guidance — it never states that it should not be used to actually execute a chain, though the zero-execution line implies it.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_basis_risk_nii_shock").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond that: deterministic execution, server-side vs forced browser delegation, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash for chain provenance. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the bulk of the text is infrastructure boilerplate: FV-status receipt hashes, a snapshot disclaimer, a documentation URL, and a pointer to describe_tool. These sentences serve provenance/marketing rather than tool selection or invocation, and they dilute the one line that matters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 point the agent to describe_tool for output structure and does cover compute modes, chaining inputs, retention, and artifact export. But the primary decision payload (policy_parameters) is left entirely opaque with no field names or example keys, so an agent cannot know what to supply 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.
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 already present in the schema and alludes to chaining via execution_hash, but adds no field-level meaning for policy_parameters, which the schema leaves as an opaque object ('see the manifest'). No syntax or example values are supplied beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence is essentially the title restated ('IRRBB Basis-Risk NII Shock Calculator'), which does convey the domain verb+resource. However, nothing explains what a basis-risk NII shock actually computes or how it differs from close siblings such as calculate_irrbb_eve_shocks, evaluate_irrbb_sot_nii, or map_irrbb_standardised_approach. An agent gets the general topic but no differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative IRRBB tools, no prerequisites, and no exclusions. The only routing advice is at the parameter level (compute 'auto' vs 'browser'), which the schema already carries. Nothing tells the agent which sibling to pick for EVE, SOT, or standardised-approach work instead of this basis-risk NII shock.
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 CalculatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_cbam_embedded_emissions").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context: transient processing with no storage/logging/retention, deterministic execution, browser-vs-server delegation semantics, and export of an AP2 artifact with execution_hash for 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode and data-handling sentences are front-loaded and useful, but the trailing FV-status URL plus 64-hex hash and the offline-verification clause add bulk of limited value to tool selection. Not tight; roughly half the text is provenance boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the definition correctly redirects to describe_tool for output shape and covers data handling, compute modes, and chain inputs/outputs. It is complete enough to invoke, though the actual decision-function inputs (policy_parameters fields) remain opaque, deferred to an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description's compute discussion duplicates that. It adds marginal chaining context but defers field names to 'the tool's manifest', which is outside the definition. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('CBAM Embedded-Emissions Calculator', deterministic compute node) and differentiates itself through the named upstream/downstream artifact chain (art-68/70/72 in, art-71/cry-04 out). However, much of the text describes framework/infrastructure (kernel, GPU, chain provenance) rather than the actual emission computation, so the core purpose is clear but somewhat buried.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an input-handling rule ('use synthetic or anonymised inputs only') and explains the compute mode selection, but never states when to reach for this tool versus siblings like resolve_cbam_default_value, aggregate_cbam_precursor_emissions, or model_cbam_certificate_cost. Routing 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.
calculate_cecl_ecl_allowanceCECL Expected Credit Loss & Allowance CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_cecl_ecl_allowance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive safety profile, and the description adds genuinely useful context beyond them: deterministic execution, server-side default vs. browser delegation, transient processing with no storage/logging/retention, synthetic-input requirement, and AP2 artifact export with execution_hash. It does not state auth requirements or expected return shape, but the data-handling and determinism 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the entry is padded with a long URL and a 64-hex FV-status path/hash plus repeated compute-mode explanation, much of which is boilerplate rather than tool-specific signal. Some sentences earn their place; several do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose core input is a free-form `policy_parameters` object (additionalProperties: {}, no field names) and which has no output schema, the description provides no field guidance at all beyond 'See the tool's manifest.' An agent cannot construct a valid call from this definition alone, which is a material gap for a 4-parameter nested-input tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 duplicates the schema's own compute description, and for policy_parameters it defers entirely 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the title ('CECL Expected Credit Loss & Allowance Calculator: OpenChainGraph compute node (credit_assessment)') without describing what the calculation actually produces or how it differs from the many other calculate_* siblings. The name/title carry the verb+resource, but the description adds no functional detail about the CECL computation itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives detailed guidance on compute modes (auto/server/browser), which is a runtime concern, but says nothing about when to choose this tool over alternatives like score_credit_default_risk or compute_rwa_scenarios. No prerequisites, no when-not-to-use, no sibling routing.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_claims_stp_economics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint false, closed world), so the bar is lower, yet the description adds genuine behavior: transient processing with no storage/logging/retention, browser delegation semantics, GPU-node delegation rule, and AP2 artifact export with execution_hash. It does not contradict the annotations. Only a note on rate limits or response shape is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with repeated boilerplate ("OpenChainGraph compute node" stated twice), an FV-status URL and a 64-char hash, and a self-referential pointer to describe_tool. The useful compute-mode and data-handling facts are buried among provenance metadata 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, zero-required, nested-object compute tool with no output schema, the description covers compute modes, chaining inputs, and data-handling policy reasonably well. But it omits what the calculation returns, how policy_parameters are shaped, and any worked input expectation, leaving the agent to call describe_tool or inspect the manifest before it can invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 reinforces compute-mode behavior and the upstream chaining intent but adds no syntax, ordering, or field-name detail beyond the schema, and policy_parameters field names are explicitly deferred to "the tool's manifest."
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first clause identify a verb-plus-resource (calculate claims STP economics) and label it a deterministic compute node, but the text never explains what STP economics means or what the calculation actually produces. An agent knows it is a calculator in the analytics_mandate family but cannot distinguish its function from the many sibling `compute_*`/`calculate_*` tools 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.
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 the compute-mode semantics (auto/server/browser, gpu:true delegation), which is actionable. However, it offers no when-to-use versus alternatives and no indication of which sibling tool to prefer, leaving tool selection to inference 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.
calculate_csdr_penaltyCSDR Cash-Penalty CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_csdr_penalty").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, yet the description adds real value: transient processing with no storage/logging/retention, a requirement to use synthetic or anonymised inputs, and the fact that it exports an AP2 artifact with execution_hash for chain provenance. It also explains the delegation behavior of compute modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense run-on paragraph that packs in a URL, a 64-hex FV-status receipt hash, artifact IDs, and compute-mode plumbing. Much of this (the hash, the snapshot disclaimer) does not help an agent select or call the tool, so it fails the 'every sentence earns its place' test.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers it to describe_tool, which is acceptable, but the core decision inputs live in a nested 'policy_parameters' object whose field names are deferred to 'the tool's manifest' — so the description is incomplete about what the agent must actually supply. Provenance/chain coverage is good, but the substantive input is opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 duplicates the schema. It adds only marginal meaning via the chaining intent of parent_hashes/parent_tool_ids, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title and calls itself a 'Deterministic OpenChainGraph compute node (compliance_mandate)', which is tautological rather than defining what the CSDR cash penalty actually is or what it computes. It never explains the penalty semantics (e.g., settlement-fail charges under CSDR), and gives no differentiation from the sibling 'recompute_csdr_penalty'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states pipeline position ('Consumes upstream artifacts from: art-77...' / 'Output feeds: art-83...'), which is useful context, but offers no when-to-use or when-not-to-use guidance and does not distinguish this tool from the near-identical sibling 'recompute_csdr_penalty'. 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.
calculate_erc2981_royaltyERC-2981 Royalty CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_erc2981_royalty").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real value beyond that: transient processing with no storage/logging/retention, the default server-side vs browser-delegation behavior, and the AP2 artifact with execution_hash for provenance. It stops short of describing output contents, but that is a reasonable amount of extra context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with machine-generated metadata: a raw URL, an 'FV-status' receipt hash path, and a self-referential 'Output schema: call describe_tool(...)'. The genuinely useful compute-mode and transience details are buried under this noise, and the leading sentence merely restates the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return, and it only partially does ('Exports an AP2 artifact with execution_hash'). It deflects output details to describe_tool and policy_parameters field names to an external manifest the agent cannot see, leaving a real gap for a tool with nested-object inputs. Compute-mode behavior is otherwise adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema descriptions are rich (compute enum semantics, parent_hashes/parent_tool_ids chaining, policy_parameters passthrough), so the schema carries the parameter burden. The description only echoes the compute-mode semantics already documented in the property description and adds nothing about parent_hashes ordering or policy_parameters field names. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title identify the resource (ERC-2981 royalty calculation) and the description labels it a 'compute node (payment_policy)', so an agent can infer the domain. However, the body never explains what a royalty calculation entails (inputs like sale price and royalty basis points, or the output royalty amount) — it restates the title and then pivots entirely into OpenChainGraph infrastructure boilerplate. Among hundreds of calculate_* siblings, nothing distinguishes its specific computation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as validate_royalty_split or recompute_erc2981-adjacent tools. The only conditional text is about compute mode (auto/server/browser) and gpu:true delegation, which is orchestration behavior, not user-facing 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.
calculate_irrbb_eve_shocksIRRBB EVE Shock CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_irrbb_eve_shocks").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior: how compute:auto/server/browser route work, that gpu:true always delegates, that inputs are processed transiently and not retained, the synthetic-input requirement, and that an AP2 artifact with execution_hash is exported. This is meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core point (compute node, compute modes, transient processing) is front-loaded, but the description is padded with template fragments like the FV-status JSON path and 'a snapshot, not a subscription' language that dilute signal. Sizeable but not fully efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description points to describe_tool for the return shape and does mention the exported AP2 artifact. It covers privacy, compute routing, and downstream chaining, but omits the actual computation semantics (what an EVE shock run requires and returns), leaving a gap for a parameterized compute tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 policy_parameters object. The description largely repeats the compute-mode semantics already in the schema and adds no new per-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.
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 IRRBB EVE shocks), and the description identifies it as an OpenChainGraph compute node with a compliance_mandate scope. However, the body text is largely reusable template boilerplate that never explains what the calculation actually does, and it gives no differentiation from close 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes the downstream consumer (art-184-irrbb-sot-eve-evaluator) and compute-mode behavior, but never states when to use this tool versus alternative IRRBB tools or what preconditions apply. There are no explicit when/when-not rules or named alternatives.
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 CalculatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_mica_own_funds").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (read-only, idempotent, non-destructive), so the bar is lower, and the description still adds real context: server-vs-browser compute routing, gpu:true always delegating, transient non-stored/non-logged processing, the 'synthetic inputs only' constraint, and an AP2 artifact with execution_hash for provenance. It does not specify what the computed output looks like, deferring to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body carries a lot of low-value scaffolding: provenance URLs, an FV-status hash snapshot, and compute-mode text that duplicates the input schema almost verbatim. It is structurally organized but not tight; 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute tool with a fully-covered schema, read-only annotations, and a pointer to describe_tool for the output shape, the description covers execution mode, data handling, provenance export, and chain neighbors. The remaining gap is that it does not explain behavior with empty policy_parameters despite zero required parameters, but that is minor.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 echoes the compute enum semantics but adds little beyond it, and for policy_parameters it only says to 'see the tool's manifest' rather than naming fields. No meaningful value added over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (calculate MiCA Art 67 own funds) and frames it as a deterministic compute node. It distinguishes itself via chain positioning ('Consumes upstream artifacts from art-100-mica-casp-authorization-readiness', 'Output feeds cry-04-merkle-batch-verifier'). The only drag is the jargon ('compliance_mandate', 'OpenChainGraph compute node') that slightly obscures the plain purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It supplies implicit routing context by naming the upstream producer and the downstream consumer of the artifact, so an agent can see where it sits in a chain. However, it never states when to prefer this over sibling fit/readiness tools (e.g. run_mica_casp_fit, assess_mica_casp_readiness), nor any exclusions. 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.
calculate_naic_clo_rbc_factorNAIC CLO/CBO/CDO Tranche RBC Factor CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine context beyond them: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, and the call exports an AP2 artifact carrying an execution_hash. Only the return payload shape is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The title is repeated verbatim before the body begins, and the text is a run-on chaining compute modes, delegation URLs, transient-input policy, artifact export, and an FV-status URL with a long hash. The useful operational facts are buried rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Infrastructure behavior is covered thoroughly, but the domain inputs are opaque: policy_parameters is a free-form object whose field names the description defers to an external manifest, so an agent has no description of what CLO/CDO tranche data to supply for an RBC factor calculation. With no output schema, the result format is also unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description and adds no syntax or field-level detail for policy_parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first line state a specific verb, resource and domain: computing an NAIC RBC factor for CLO/CBO/CDO tranches. An agent can identify the topic, but the body never explains what the factor calculation actually does or which tranche attributes drive it, and it offers no differentiation from the many other calculate_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 calculate_rbc_action_level, compute_rwa_scenarios, or the other calculate_* siblings. The compute-mode discussion is server/browser execution guidance, not task-level 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.
calculate_nis2_penalty_exposureNIS2 Penalty Exposure Calculator (Art. 34)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_nis2_penalty_exposure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful context beyond that: server-side vs browser execution, transient input handling with no storage/logging/retention, a synthetic-or-anonymised input warning, AP2 artifact export with execution_hash, and upstream artifact chaining. It does not contradict the annotations, though some boilerplate reduces the signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the description is bloated with infrastructure boilerplate, a documentation URL, and an FV-status receipt hash that an agent selecting or invoking the tool is unlikely to need. Several sentences do not earn their place in the tool-selection context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The annotations cover the safety profile, and the description explains compute modes, data handling, and artifact provenance. However, there is no output schema, the return format is delegated to describe_tool, and the actual policy_parameters fields are not specified. For a complex compute node, this leaves important invocation details incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the structured schema already documents the four parameters, including the compute enum. The description repeats the compute-mode behavior but adds little parameter-specific meaning beyond the schema. For policy_parameters it says only 'See the tool's manifest for field names,' leaving the decision inputs undocumented in both the description and schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: NIS2 Penalty Exposure Calculator under Art. 34. It also identifies the upstream artifact consumed from the NIS2 Art. 21 gap checker, which helps distinguish it from other NIS2 tools. It stops short of explaining the calculation itself or explicitly contrasting alternatives such as check_nis2_art21_measures 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only when-to-use guidance concerns compute mode selection (auto/server/browser), which is execution plumbing rather than task selection. There is no statement of when this tool should be chosen over sibling NIS2 assessment or penalty tools, 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.
calculate_repo_haircutOn-Chain Repo Haircut CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_repo_haircut").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs only, an AP2 artifact with execution_hash is exported for chain provenance, and compute:'browser' returns a delegation URL while gpu:true nodes always delegate. This is real disclosure beyond the structured fields, though return shape details remain thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with infrastructure boilerplate and a redundant repeat ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node') before the purpose is clear, and it pads the end with a URL plus a long FV-status receipt/hash sentence that does not help an agent select or invoke the tool. It is long and back-loaded rather than front-loaded on what the calculation does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description adequately covers data handling, chaining and artifact export. But the core decision function's inputs are opaque — policy_parameters is an untyped bag whose fields are deferred to an external manifest — so the agent lacks the semantics needed to supply the actual haircut inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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's parameter-adjacent text (chaining semantics, compute modes) largely restates the schema, and it explicitly defers policy_parameters field names to 'the tool's manifest', adding no syntax or format detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title state a specific verb+resource ('On-Chain Repo Haircut Calculator') and the description adds the node identity ('compute node (collateral_mandate)'). However, it never actually says what the haircut computation determines or how it differs from close siblings such as compute_stock_token_collateral_haircut or compute_basel_haircut_adjusted_exposure, so an agent cannot distinguish the collateral-haircut tools 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.
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 alternatives. The 'Output feeds:' line names downstream consumers, which is chaining context rather than routing guidance, and the compute-mode discussion is parameter behavior, not tool selection. An agent gets no help choosing between this and the many other haircut/collateral tools.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_solvency2_scr_ratio").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new context: deterministic execution, transient/no-retention processing, browser-vs-server delegation behavior, and that an AP2 artifact with execution_hash is exported for chain provenance. The only gap is that it never says what the returned ratio payload looks like, but the compute/artifact behavior is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats itself ('OpenChainGraph compute node' immediately followed by 'Deterministic OpenChainGraph compute node'), the compute-mode paragraph duplicates the schema verbatim, and a full FV-status paragraph about receipt snapshots is meta-commentary that consumes space without helping tool selection or invocation. The actual purpose is front-loaded but buried under boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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-object input, the description should describe what the computation yields; it discloses that an AP2 artifact with execution_hash is exported and names the downstream consumer, but never says the response contains the SCR ratio or its components. Chaining, determinism, and data handling are covered, so the definition is workable but incomplete on the return contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explained by the schema and the description merely restates the compute-mode semantics. The domain inputs live in policy_parameters, which the description dismisses with 'See the tool's manifest for field names' — a pointer to a resource the agent cannot access, so the most important input remains semantically opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Solvency II SCR ratio) and frames the tool as a deterministic compute node, so the agent knows it produces a ratio rather than retrieving or validating one. It does not distinguish itself from the near-identical sibling aggregate_solvency2_scr_modules, leaving the boundary between 'calculate the ratio' and 'aggregate the modules' to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only real usage instruction is 'Use synthetic or anonymised inputs only', which is a data-handling rule rather than a when-to-use cue. There is no guidance on when this tool should be chosen over aggregate_solvency2_scr_modules or the downstream reconcile_sii_ifrs17 tool, and no prerequisite or ordering information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_xvaXVA / CVA CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("calculate_xva").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds real behavioral context: inputs are processed transiently and not stored or logged, output includes an AP2 artifact with execution_hash for provenance, and server-vs-browser execution rules. It does not disclose pagination, latency, or error 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the definition is bloated with invocation-irrelevant content: a documentation URL, a full FV-status hash receipt with a sentence about offline verification, and a trailing pointer to describe_tool for the output schema. These sentences do not help an agent decide or call the tool and dilute the useful parts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description points to describe_tool for it, and it covers the compute-mode contract, chaining inputs/outputs, and provenance export. For a deterministic compute node with a fully-described schema, this is largely sufficient, though it never states what the calculated XVA result looks like or what constitutes valid policy_parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 ('auto', 'browser', 'gpu:true') but adds little beyond the schema's own descriptions, and says nothing about policy_parameters field naming beyond 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The definition names a verb and resource ('XVA / CVA Calculator', 'compute node (risk_parameter)'), so the domain is identifiable, but almost none of the text actually explains what is being computed or how XVA differs from siblings like compute_options_greeks or compute_portfolio_var. The opening line largely restates the title, and the remaining content is infrastructure 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives chain context ('consumes upstream artifacts from qfa-01-options-greeks', 'output feeds ptg-01-ap2-prompt-template-generator') and an input constraint ('use synthetic or anonymised inputs only'), which implies when the tool belongs in a workflow. However there is no explicit when-to-use vs alternative-tool statement, and the compute-mode guidance is about execution mechanics 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.
call_toolRun any AINumbers tool by nameARead-onlyIdempotentInspect
Runs ONE read-only AINumbers tool that is not in your tool list. tools/list is paginated (13 pages, 722 tools) and many hosts read only the first page; this is the door to the rest. Pass { name: "", arguments: { ... } } — the target's own inputSchema is validated and its result is returned verbatim, including execution_hash, so a dispatched call and a direct call are byte-identical. Get a name from find_tool (single calculators), find_chain (workflows) or describe_tool (exact schema). Read-only tools only: anything that issues a credential, stamps an anchor or reaches the network is refused here and must be called directly so your host can approve it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact mcp_name of the tool to run (e.g. "recompute_payment_waterfall"). Use find_tool/describe_tool to get it; this takes the exact name only. | |
| arguments | No | The target tool's own arguments object, exactly as you would pass it on a direct call. Omit for a no-argument tool. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds substantial context beyond them: the refusal policy for credentialed/network-reaching tools, the byte-identical guarantee between dispatched and direct calls, and the verbatim return including execution_hash. This meaningfully extends 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, zero waste, and the core purpose is front-loaded. Each sentence earns its place: what it does, why it exists (pagination context), how to invoke it, discovery routing, and the safety boundary. The structure flows logically from purpose to constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a generic dispatcher with nested objects and no output schema, the description is remarkably complete: it explains the invocation pattern, validation behavior, result format (verbatim with execution_hash, compensating for the missing output schema), discovery mechanism, and the read-only safety boundary. The only minor gap is error behavior for invalid names, but the exact-name sourcing instructions mitigate that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both 'name' and 'arguments' already have solid descriptions in the schema, so the baseline is 3. The description reinforces the 'exact mcp_name' requirement and explains that arguments are the target's own inputSchema, but mostly restates what the schema already documents rather than adding new semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Runs ONE read-only AINumbers tool that is not in your tool list.' It immediately distinguishes itself from siblings by framing itself as a dispatcher/gateway to the 722 tools hidden by pagination, so an agent can tell it apart from find_tool, find_chain, and describe_tool without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit when/when-not guidance: use it for tools missing from your list, and explicitly names the discovery alternatives (find_tool for single calculators, find_chain for workflows, describe_tool for exact schema). It also states the exclusion rule — anything issuing a credential, stamping an anchor, or reaching the network is refused and must be called directly — which is an explicit when-not. Nothing 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.
camt053_parseParse and structurally validate a camt.053.001 bank statementARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| xml | Yes | camt.053.001 XML statement document text to parse. |
TDQS
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.
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.
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.
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.
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.
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 CertifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("certify_license_election").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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. The description adds valuable non-obvious behavior: transient processing with no storage/logging/retention, synthetic-input requirement, deterministic execution, and AP2 artifact export with execution_hash. These are 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with URL, FV-status receipt, artifact-chain IDs, and tooling instructions ('call describe_tool(...)') that crowd out the core purpose. The single most agent-relevant sentence (what the tool does) is absent, and critical execution semantics are mixed with provenance boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterized compute node with nested policy_parameters and no output schema, the description covers execution mechanics, upstream/downstream artifact relations, and privacy behavior, which is enough to invoke it safely. However, it omits any explanation of the decision function or the meaning of the resulting license election certification, leaving an agent unable to reason about the output without calling describe_tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 reiterates the compute semantics (auto/server/browser, gpu:true delegation) without adding syntax or format guidance 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.
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, but the actual verb+resource (certifying a license election) is buried in the title and never clarified in prose. An agent cannot easily distinguish this from the other 200+ ChainGraph compute nodes (build_chaingraph, emit_chaingraph_artifact, run_chain) without reading the URL and FV-status metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the compute binding (auto/server/browser) but gives no explicit guidance on when to use this node versus the upstream mappers (map_pil_flavor, choose_cc_license) or the downstream verifier (verify_license_election). Existence of parent artifact IDs (art-195/196/197) and the output target (art-200) hints at a pipeline position, but no user-facing when-to-use instruction is provided.
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 MatrixCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_agency_eligibility_matrix").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them: determinism, transient non-retained input processing, server-vs-browser execution and delegation semantics, and the exported AP2 artifact carrying execution_hash for provenance. It does not describe failure modes or what happens when no kernel is registered, but the disclosure is well above 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and chain relationships are front-loaded, but the body is dense shared boilerplate (compute-mode rules repeated from the schema, a long FV-status URL and receipt sentence) that does not earn its space for this specific tool. It is readable but bloated for the amount of tool-specific information it carries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 artifact and explicitly routes the agent to describe_tool for the output schema, plus upstream/downstream artifacts and privacy behavior. However, the core gap remains: the semantics of policy_parameters (the actual decision inputs) are deferred to an external manifest, leaving the agent unable to construct a correct call from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 duplicates the schema's own compute description. Its only added value is pointing at 'the tool's manifest' for policy_parameters field names, which leaves the actual decision inputs unspecified — so it neither compensates nor falls below the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title ('Agency Eligibility Matrix') and then spends its length on infrastructure boilerplate (compute node, compute modes, artifact export). It never says what eligibility is actually being checked or what the decision function decides — an agent learns it is a compliance_mandate compute node but not what it computes. Chain positioning (consumes art-223, feeds art-221) is the only differentiating content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 siblings like check_conforming_loan_limit or compute_llpa_stack beyond an upstream/downstream data-flow note. The only usage-like statements are constraints ('Use synthetic or anonymised inputs only') and compute-mode selection, neither of which tells the agent 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.
check_agent_attestationAgent Identity & Authorization Attestation CheckerBRead-onlyIdempotentInspect
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-02-agent-spend-policy-simulator, art-13-eudi-wallet-credential-readiness-checker. Output feeds: art-02-agent-spend-policy-simulator, art-32-a2a-agent-card-trust-chain-validator, 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_agent_attestation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses genuinely useful behavior: default server-side compute for gpu:false nodes, browser delegation URLs, transient processing with no storage/logging/retention, and an AP2 artifact export with execution_hash for chain provenance. It also warns to use synthetic/anonymised inputs, which is actionable safety context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with tangential material — EU AI Act dates, Digital Omnibus/Parliament approval timing, KYA-OS donation history, a URL and an FV-status receipt hash — that competes with the two sentences that actually describe tool behavior. Front-loading is weak because the operational content is buried after the regulatory preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema and an open-ended policy_parameters object, the description covers compute routing, chaining and data-handling but never explains what the attestation check computes or what a result signifies. The invocation mechanics are covered; the decision semantics are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 sentence is largely redundant with the enum description. It adds nothing for policy_parameters beyond deferring to 'the tool's manifest', so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title and labels itself an 'OpenChainGraph compute node (compliance_mandate)', but never states in plain terms what the check actually validates about an agent's identity/authorization attestation. The verb+resource is only recoverable from the name and title, not from the body text, which is dominated by provenance and regulatory metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the pipeline lists ('Consumes upstream artifacts from: ...', 'Output feeds: ...'), which signal where it sits in a chain but give no explicit when-to-use or when-not-to-use guidance versus siblings like verify_input_attestations or validate_agent_obo_mandate. 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.
check_agent_token_scopeAgent Token Scope CheckerCRead-onlyIdempotentInspect
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. Consumes upstream artifacts from: art-01-ap2-mandate-chain-validator. Open at: https://ainumbers.co/chaingraph/art-385-agent-token-scope-checker.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_agent_token_scope").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful context beyond them: inputs are processed transiently and not stored/logged/retained, gpu:true nodes always delegate to the browser, and the tool exports an AP2 artifact carrying execution_hash for chain provenance. That is real behavioral disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with non-actionable boilerplate – a raw URL, an FV-status endpoint path with a 64-character hash, and a pointer to describe_tool for the output schema – while the single sentence that should state the tool's purpose is absent. Front-loading is poor: the reader gets compute internals before any statement of what the tool decides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 free-form object and no output schema, the description should clarify what the decision function evaluates and what the caller must supply. Instead it explains deployment plumbing and defers parameter field names to an external manifest, leaving an agent unable to determine correct inputs or expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's compute discussion largely duplicates the schema text. The one substantive parameter, policy_parameters, is left completely opaque by both schema and description ('See the tool's manifest for field names'), so the description neither compensates nor detracts. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what 'checking agent token scope' actually does – it defines the tool only as an 'OpenChainGraph compute node (compliance_mandate)' and then describes compute binding, provenance, and storage behavior. The only purpose signal beyond the name is the opaque upstream-consumer line 'art-01-ap2-mandate-chain-validator'. It is essentially a restatement of the title plus infrastructure boilerplate, with no differentiation from siblings like verify_kya_x402_scope or validate_ap2_mcp_policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 relative to the many agent-token and mandate tools in the sibling list. The compute-mode explanation (auto/server/browser) is parameter mechanics, not tool-selection guidance. 'Use synthetic or anonymised inputs only' is a caution, not routing advice.
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 CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive/local), the description discloses genuinely useful behavior: deterministic evaluation, server-vs-browser compute semantics, gpu:true always delegating, transient processing with no storage/logging/retention, a synthetic-inputs-only warning, and export of an AP2 artifact with execution_hash for chain provenance. The only gap is that it never describes what the check returns or what failure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The tool name is front-loaded, but the first two sentences are redundant ('OpenChainGraph compute node' repeated as 'Deterministic OpenChainGraph compute node'), and the trailing FV-status/URL sentence is long, hash-heavy metadata that does little to 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, a nested policy_parameters object, no required fields and no output schema, the description covers safety and provenance well but leaves the actual decision inputs and return payload under-specified (only 'AP2 artifact with execution_hash'). It is adequate but not complete for a nested-input compute node whose core semantics live behind an external manifest URL.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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. The description's compute-mode explanation duplicates the schema text rather than extending it, and it explicitly punts on policy_parameters field names ('See the tool's manifest'), which is the one place parameter meaning is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (Art. 50 marking check), but the description itself only restates this as a 'compliance_mandate' OpenChainGraph compute node and never says what marking property is actually checked, what class of input it takes, or how it differs from siblings like assess_ai_act_conformity or verify_dual_layer_disclosure. The agent learns the tool's identity from the title, not the body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 selection criteria against the many other AI-Act tools in the sibling list. The only routing hint is 'Output feeds: art-127-dual-layer-disclosure-verifier', which describes downstream consumption rather than when this tool should be invoked.
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 CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_allocation_affirmation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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. The description adds meaningful extra behavior: auto/server/browser compute routing, browser delegation semantics for gpu:true nodes, transient non-stored/non-logged processing, the 'synthetic inputs only' constraint, and the exported AP2 artifact with execution_hash for chain provenance. These are genuine 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense wall of infrastructure jargon, URLs, and a full SHA-256 FV-status path, front-loaded with a restatement of the tool name and title. Much of the text (FV-status snapshot semantics, 'this receipt verifies offline') is irrelevant to selecting or invoking the tool. Useful fragments are buried rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description correctly points to describe_tool for the output schema and identifies upstream/downstream artifacts. But the actual decision-function inputs are left opaque: policy_parameters is a free-form object whose field names are deferred to 'the tool's manifest'. For a deterministic compute node with no output schema, this leaves the agent unable to know what inputs the check actually requires.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully. The description's compute-mode explanation largely mirrors the schema's own enum documentation and adds little param-level detail. With the schema carrying the load, baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name indicate a conformance check over the resource 'allocation/affirmation', but the description itself spends most of its text on OpenChainGraph infrastructure (compute modes, provenance, FV-status) rather than stating what the conformance check actually validates. It does not distinguish this tool from sibling conformance checkers such as lint_settlement_orchestrator_conformance or check_ssi_conformance. Purpose is inferable from the title, not from the description's substance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives pipeline positioning — it consumes art-77-t1-settlement-readiness-diagnostic and feeds art-82-securities-settlement-message-linter and cry-04-merkle-batch-verifier — which is useful chaining context. However, it never says when to choose this tool over the many sibling conformance checks, nor states any preconditions or exclusions. Usage is implied through pipeline placement rather than stated.
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 EligibilityCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_assessor_independence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely new behavioral context: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL rather than a result, and the call exports an AP2 artifact with execution_hash. These are non-obvious traits an agent should know 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded, but signal density is low: 'OpenChainGraph compute node' is stated twice, the compute-mode paragraph restates the schema verbatim, and a long FV-status snapshot/receipt paragraph is irrelevant to selecting or invoking the tool. Multiple sentences do not earn their place for the calling agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter compliance check with a nested policy_parameters object and no output schema, the description never explains what fields policy_parameters must carry, deferring to an external manifest, and it never states what the returned AP2 artifact contains beyond an execution_hash. It points to describe_tool for the output shape, which leaves the calling contract incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 merely duplicates the schema's own compute enum description and adds no syntax or semantics beyond it, and policy_parameters is still left as 'see the tool's manifest' in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title ('Swift CSP Assessor Independence Eligibility') identify a specific resource, but the description itself only restates the title and labels it an 'OpenChainGraph compute node'. It never says what the check actually evaluates or what independence criteria are applied, so the agent learns the topic but not the operation. Sibling tools like attest_calc_agent_independence 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.
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' and the compute-mode mechanics, which are already in the schema. There is no when-to-use, when-not-to-use, prerequisite, or routing to any of the many adjacent independence/attestation siblings.
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 CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_camera_provenance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: server-side kernel execution on Cloudflare Workers by default, browser delegation URL when forced, gpu:true always delegating, transient non-retained inputs, and an exported AP2 artifact with execution_hash. It does not contradict the annotations; only the return payload shape is left to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is a single dense run-on paragraph mixing runtime semantics, retention policy, provenance export, a downstream tool reference, a URL, and a long FV-status hash with an offline-verification disclaimer. The genuinely useful facts (execution model, transient inputs) are buried, and the hash/URL block is noise for a selection decision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 pointing to describe_tool and naming the downstream consumer (art-359-idv-session-receipt-builder). But for a tool with a free-form, manifest-defined policy_parameters object and no stated decision semantics, an agent still lacks enough to invoke it correctly with meaningful inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, including the compute enum and the parent_hashes/parent_tool_ids pairing. The description only re-explains compute mode and defers policy_parameters field names to an external manifest, adding almost nothing beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It identifies itself as a 'compliance_control' compute node for a Camera-Provenance Check and says it exports an AP2 artifact carrying an execution_hash. But it never states what the check actually evaluates (e.g. C2PA/manifest provenance of media), so the verb+resource is only nominally specific and largely restates the title and tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a compute-mode selection rule ('auto' vs 'server' vs 'browser') and a data-handling caution ('use synthetic or anonymised inputs only'), which is genuine context. However, there is no guidance on when to reach for this tool versus siblings such as validate_c2pa_manifest or decode_c2pa_aiml_assertions, 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_capital_adequacy_privatePrivate-Input Capital Adequacy CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_capital_adequacy_private").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses real behavioral traits beyond the annotations: transient processing with no storage/logging/retention, default server-side execution for gpu:false nodes with registered kernels vs browser delegation for gpu:true, and an AP2 artifact export with execution_hash. However, it never explains what the adequacy check actually outputs or how callers should interpret an adequacy result, so transparency is infrastructure-focused rather than decision-focused.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded 'Private-Input Capital Adequacy Check' repeats the title verbatim, followed by a run-on of infrastructure detail (kernel registration, Cloudflare Workers, browser delegation URL) before any hint of what the tool computes. Notably it never gets to the point of what a capital adequacy check does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a deterministic financial computation with no output schema, 4 parameters, and a nested object parameter. The description covers execution model and provenance but omits what capital-adequacy figure is produced, what inputs policy_parameters should carry, and how the resulting AP2 artifact should be interpreted. That leaves the agent unable to use the tool meaningfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mentions compute:'auto' and compute:'browser' modes, which is redundant with the enum's own description. The central parameter policy_parameters is left to the schema and manifest, adding no meaning in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool's domain as an OpenChainGraph compute node that performs a capital adequacy check, but it never actually states what the check computes or reports. It states the node's placement and execution model, which partially identifies the resource, but the 'verb+resource' (compute capital adequacy) is buried under infrastructure detail that doesn't distinguish this tool from the ~1000 other 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.
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 hygiene note, not a when-to-use-this-vs-alternatives statement. With 1000+ siblings including compute_rbc_action_level_private, check_tokenized_collateral_eligibility, and calculate_mica_own_funds, a caller has no way to know when this capital-adequacy variant 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.
check_card_act_ability_to_payCheck CARD Act Ability to PayCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_card_act_ability_to_pay").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context beyond that: deterministic execution, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash for chain provenance. However, this is generic platform boilerplate replicated across every node rather than tool-specific behavior (e.g., what the decision function consumes or decides).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The body is a dense boilerplate block: compute-binding rules, retention language, artifact export, a URL, and an FV-status content hash occupy more space than the tool's actual purpose. It is front-loaded only in the sense that the name appears first; the substantive sentences are buried behind infrastructure text of low selection value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, 4 parameters (one opaque nested object), and a compliance-decision purpose, the description should explain what the check computes and what inputs it needs. Instead it covers only compute mode, provenance chaining, and artifact export, leaving the core domain semantics and the required policy_parameters fields unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema coverage is nominally 100% and the description adds nothing about compute/parent_hashes/parent_tool_ids that the schema doesn't already say. Critically, policy_parameters — the actual decision inputs — is an open object whose field names appear nowhere in the schema or description; the description punts to 'the tool's manifest', which an agent cannot read. The description fails to compensate for that opacity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Check CARD Act Ability to Pay: OpenChainGraph compute node (compliance_mandate)', which restates the name/title and tags it as a compute node, but never explains what the ability-to-pay check actually evaluates. It gives no differentiation from adjacent compliance checks in the sibling list (check_qm_points_and_fees, compute_aca_affordability_safe_harbor, test_hoepa_high_cost). Purpose is inferable from the name but not substantiated 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.
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 a downstream pointer ('Output feeds: art-228-build-adverse-action-notice'). There is no statement of when to invoke this versus alternative affordability/threshold checks, 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_cash_leg_finalityOn-Chain Cash-Leg Finality CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_cash_leg_finality").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/closed-world annotations, the description discloses genuinely useful behavior: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, compute mode semantics (server vs browser delegation, gpu:true always delegates), and that an AP2 artifact with execution_hash is exported for provenance. That is real added context, though it never says what the finality check itself returns or asserts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate, a hardcoded FV-status URL with a long hash, and a closing pointer to describe_tool for the output schema. The actual purpose is one phrase at the front and is then buried; much of the content describes the platform, not this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, the decision-function fields inside policy_parameters are undocumented in both schema and description, and the description never states what result the checker produces (finality determined? window? attestation?). The description spends its budget on transport/privacy metadata rather than on what 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 text and adds only the chaining intent for parent hashes; the critical policy_parameters fields are deferred to 'the tool's manifest', which is not in the schema either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name states a specific verb+resource (check cash-leg finality) and the body adds that it is a deterministic compute node consuming the 505-tokenized-collateral-eligibility-checker upstream. However, the body never explains what 'cash-leg finality' actually means or how the decision is made, and with sibling tools like classify_settlement_finality, classify_settlement_asset_finality and check_linea_l2_finality_window nearby, there is no differentiation of this tool from those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative. The only routing signal is the mention of consuming upstream artifacts from 505-tokenized-collateral-eligibility-checker, 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.
check_client_portingClient Porting CheckBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_client_porting").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 that inputs are processed transiently and never stored, logged, or retained, that execution is deterministic, and that GPU nodes return a browser delegation URL. That is real behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is front-loaded and the compute/data-handling facts are useful, but it opens with a redundant restatement ('OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node.') and spends a large block of text on a full FV-status URL plus a 64-character hash. Several sentences describe platform infrastructure rather than this tool's behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supply the key return facts (AP2 artifact with execution_hash, browser delegation URL when delegated) and points to describe_tool for the full output schema, which is a reasonable affordance given that sibling exists. However, the tool's actual decision semantics and the policy_parameters fields remain unexplained for a 4-parameter tool with a nested object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 duplicates the schema's own compute description. It adds no new detail on policy_parameters (deferring to 'the manifest') and does not touch the parent hash chaining parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (attestation_mandate) that exports an AP2 artifact, but it never explains what a 'client porting check' actually decides — the domain semantics of the check are absent, only the execution machinery is described. It distinguishes itself from most siblings only by the artifact it emits, not by the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute mode selection (auto/server/browser) and the GPU delegation rule, but that is parameter behavior, not tool-selection guidance. There is no statement of when an agent should call check_client_porting versus the many other check_*/compute_* siblings, and no prerequisites or preconditions are given beyond '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_conforming_loan_limitConforming Loan Limit CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_conforming_loan_limit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: compute:'auto' vs 'browser' delegation, that gpu:true nodes always delegate, that inputs are processed transiently and not stored/logged/retained, and that an AP2 artifact with execution_hash is exported. That is material context an agent would not get from the structured fields alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the node identity but then carries substantial noise: a full URL, an inline FV-status SHA-256 hash, and a describe_tool call pointer. The compute-mode and data-handling sentences earn their place; the provenance blob and link do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers it to describe_tool, which is acceptable, and data-retention behavior is covered. However, policy_parameters — the actual decision inputs — is left as an opaque free-form object ('See the tool's manifest for field names'), so an agent cannot know what fields to supply for a compliance check without leaving the tool definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute modes already in the schema enum. It adds no new semantics for the other parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels the tool a 'compliance_mandate' OpenChainGraph compute node and repeatedly calls it a 'Deterministic OpenChainGraph compute node', which restates the infrastructure type rather than saying what a conforming-loan-limit check actually computes or returns. Only the name/title ('Conforming Loan Limit Check') convey the function, so purpose is effectively tautological at the description level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 siblings such as check_agency_eligibility_matrix or compute_llpa_stack, despite a very crowded namespace. 'Use synthetic or anonymised inputs only' is an input constraint, not usage guidance, and nothing states preconditions or exclusions.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_cra_annex1_completeness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 operational context: inputs are processed transiently and not stored/logged/retained, the auto/server/browser delegation semantics, and that it exports an AP2 artifact carrying execution_hash for provenance. This is meaningful behavior beyond the structured fields, though return-shape 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is dominated by infrastructure boilerplate (node type, FV-status receipt hash, offline-verification note) rather than agent-relevant content, and the one useful pipeline fact is buried mid-paragraph. It is verbose without being front-loaded around what the tool does or when to call it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not describe the result, the completeness criteria, or the fields expected inside policy_parameters for a nested-object compliance check. For a chained compliance tool whose inputs are largely opaque, this leaves the agent without enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 restates the compute-mode enum that the schema itself explains. The critical policy_parameters object is left opaque in both places ('See the tool's manifest for field names'), so the description adds no compensating meaning for the actual decision inputs. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name states a clear verb+resource (check CRA Annex I completeness), but the description body never explains what the check actually does — what Annex I requirements are verified or what a 'complete' result means. It instead spends its length on OpenChainGraph node mechanics, so the purpose is carried almost entirely by the name. It does add pipeline placement (consumes art-138 SPDX SBOM validator, feeds art-140 CRA vuln reporting readiness), which gives some sibling-adjacent context but not enough to differentiate the check itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives compute-mode behavior and a privacy constraint ('Use synthetic or anonymised inputs only'), but offers no when-to-use/when-not guidance and never names an alternative tool. An agent is left to infer that this is the CRA-Annex-I step in a chain from the artifact IDs alone.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_credit_concentration_topn_sector").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: compute-mode delegation semantics, that GPU nodes always delegate to the browser, that inputs are processed transiently and not stored/logged/retained, and that an AP2 artifact with execution_hash is exported for chain provenance. This is real value-add, though some compute-mode detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with low-value boilerplate: a full FV-status URL containing a 64-character hash, a spec-page URL, and a describe_tool pointer. The genuinely useful behavioral facts are buried mid-paragraph after a title restatement, so it is not front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object, zero-required-param compute node with no output schema, the description covers execution model and provenance but leaves the actual decision inputs (policy_parameters fields) to the manifest. The describe_tool pointer partially compensates for the missing output schema, so the definition is adequate but incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 schema. It adds nothing about policy_parameters fields, which the schema itself 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause restates the tool title verbatim ("Credit Concentration Top-N / Sector Checker") and the rest is infrastructure boilerplate about being an OpenChainGraph compute node. It never explains what the check computes, what thresholds or concentration measures apply, or how it differs from siblings like check_large_exposures_limit or compute_counterparty_limit_check. The name carries the only real purpose signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 a data-handling constraint rather than a when-to-use rule. Nothing states when to prefer this tool over the many other credit/exposure checkers in the sibling list, nor any prerequisites for chaining.
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 & CoverageCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_cscf_control_applicability").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, and the description adds real value beyond them: default server-side execution on Cloudflare Workers, browser delegation semantics, transient non-retention of inputs, and an exported AP2 artifact carrying execution_hash for chain provenance. The only gap is that the FV-status snapshot language is cryptic 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence and the compute-mode explanation are front-loaded, but 'OpenChainGraph compute node' and 'Deterministic OpenChainGraph compute node' are redundant, and the FV-status URL/hash paragraph adds bulk of low decision value. It is longer than it needs to be for the information conveyed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 points to describe_tool for the return shape and explains compute/privacy/artifact mechanics. However, for a 4-parameter tool with a nested policy_parameters object it never describes the domain inputs or what a 'control applicability' verdict looks like, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 adds marginal meaning (execution_hash provenance for chaining) but does not clarify the opaque policy_parameters object 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.
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)' but never explains what the tool actually determines about CSCF control applicability. Beyond the title, the text is entirely about compute plumbing, privacy, and artifact export, so an agent cannot tell what the decision function returns or how it differs from the many other 'check_*' compliance nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage constraint given is 'Use synthetic or anonymised inputs only.' There is no guidance on when to select this node versus sibling checks, no prerequisites, and no exclusions. The compute-mode discussion is operational, 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.
check_debt_validation_noticeDebt Validation Notice Completeness CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_debt_validation_notice").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), yet the description adds real behavioural context: server vs browser compute selection, gpu:true forced delegation, transient non-retention of inputs, and an exported 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the title, but then bloated with artifact URLs, an fv-status content hash, and receipt-verification prose that does not help an agent select or invoke the tool. Much of the text could be dropped without losing actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested, underspecified policy_parameters object and no output schema, the description should explain the expected inputs and result shape; instead it points to describe_tool and a manifest. Provenance/chaining is covered, but the core decision-function contract is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 wording largely duplicates it. Critically, the actual decision inputs inside policy_parameters are deferred to 'the tool's manifest,' adding no semantics for the payload that matters most.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('Debt Validation Notice Completeness Checker') and pin it to a compliance_mandate node, so an agent knows broadly what it checks. But the body never explains what completeness criteria are evaluated, what a debt validation notice must contain, or what distinguishes this from sibling validators like validate_adverse_action_notice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The only routing hint is that it 'Consumes upstream artifacts from: art-402-validate-regf-call-frequency,' implying an ordering constraint, but this is descriptive 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_digital_trade_rulesDigital Trade Rules Compliance CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_digital_trade_rules").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive, closed-world), but the description adds meaningful behavior beyond them: how compute:'auto'/'server' vs 'browser' resolves, that gpu:true nodes always delegate, and that inputs are processed transiently and not stored, logged, or retained. The disclosure of no-retention and the chaining/provenance export (execution_hash, chain.parent_hashes) is genuine added context for a mutation-free 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first clause identifies the tool, but the body is a dense run-on of infrastructure boilerplate, an FV-status snapshot hash, a URL, and a describe_tool pointer, with no paragraphing or ordering by importance. Every element is arguably relevant, but the 64-character hex path and offline-verification sentence crowd out the operationally important compute and input-hygiene guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is fairly complete: it explains execution modes, data handling, upstream/downstream artifact wiring, and points to describe_tool for the output schema. The main gap is that the actual decision semantics (what the ruleset evaluates) remain unstated, but the chaining and provenance contract an agent needs to call it is covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 explanation already present in the schema and says nothing new about how to populate policy_parameters (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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and label ('Digital Trade Rules Compliance Checker', 'compute node (scheme_rule)') establish the verb and resource, and the description adds that it exports an AP2 artifact with an execution_hash. However it never explains what 'checking' actually decides — no ruleset, criterion, or output meaning is stated — and it does not distinguish itself from the related sibling run_digital_trade_fit or from the many other chain compute nodes. Purpose is legible but the substantive function 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real operational context: it consumes art-52-digital-trade-fit-diagnostic upstream and feeds art-08/art-55 downstream, and instructs 'use synthetic or anonymised inputs only', which implies a fit/diagnostic workflow stage. But it never states when to prefer this over alternatives (e.g. run_digital_trade_fit) or any exclusions/prerequisites beyond the input-hygiene note, so 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.
check_dpa_gdpr_art28DPA Article 28 Completeness CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, server-vs-browser compute routing, transient non-retained processing, and AP2 artifact export with execution_hash. These are real behavioral traits not covered by the annotations, though the privacy/compute boilerplate is repeated verbatim 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense block of infrastructure boilerplate front-loaded with a title restatement rather than the tool's function. The compute-mode explanation duplicates the schema's compute property, and the trailing FV-status hash sentence 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance checker with an open-ended nested policy_parameters object and no output schema, the description omits both what is being checked and what inputs are expected. It covers execution mechanics but leaves the actual decision function and its required fields undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meaning to parameters and explicitly defers field names to 'the tool's manifest,' offering no compensating detail for the opaque policy_parameters object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause 'DPA Article 28 Completeness Checker: OpenChainGraph compute node' is essentially a restatement of the name and title, followed by infrastructure metadata. Nothing explains what Article 28 completeness actually means or what the tool verifies, so the description adds no differentiation from the many sibling compliance checkers. The name carries nearly all the semantic load.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no when-not-to-use, and no named alternative among the numerous sibling checkers. The only directive 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_emir_uti_completenessEMIR UTI Completeness CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, but the description adds meaningful behavior: inputs are processed transiently and not stored or logged, execution is deterministic, and the tool exports an AP2 artifact with execution_hash plus a snapshot FV-status receipt. That is real added context beyond structured data, though return-shape and error behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate (compute binding, Cloudflare Workers, transient processing, AP2 provenance, FV-status URL) that duplicates the schema and buries the actual purpose. The one truly task-relevant fact, the upstream/downstream artifact chain, is buried mid-paragraph, and the definition is poorly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose real logic lives behind a generic policy_parameters object and an external manifest, and with no output schema, the description should explain what completeness criteria are checked and what the result contains. Instead it omits the substantive behavior entirely, leaving an agent unable to know what the check returns beyond a provenance artifact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, making 3 the baseline. The description's compute-mode explanation is essentially a duplicate of the schema's compute field, and policy_parameters just points to 'the tool's manifest' without naming any fields, so no meaning is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify the domain (EMIR UTI completeness) and the description situates it as a 'compliance_mandate' compute node feeding art-155-emir-upi-validator from art-153, which hints at its workflow role. However, it never states in plain terms what the check actually evaluates (e.g. whether UTIs are present, well-formed, or uniquely paired), so the purpose is largely carried by the name and is not distinguished from siblings like validate_emir_trade_report or validate_emir_upi.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many EMIR siblings. The only usage context is positional: it consumes upstream artifacts from art-153 and feeds art-155, and the compute-mode paragraph restates the schema's compute parameter rather than advising on tool selection.
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 CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_etr_control_evidence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine behavioral context: compute:auto does server-side execution on Workers for gpu:false kernels, compute:browser returns a delegation URL, gpu:true always delegates, inputs are transient and never stored/logged, and synthetic/anonymised inputs are required. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening states the compute-node role early, but the text is cluttered with a raw documentation URL and a full 64-char FV-status hash path that add little actionable value for an agent. Several sentences are generic OpenChainGraph boilerplate shared across many sibling tools, diluting the tool-specific content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description defers to describe_tool for the return shape and covers chaining inputs and provenance export, which is adequate. However, it leaves the actual decision logic and the required policy_parameters fields unexplained, so an agent cannot confidently construct a valid call from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully documented in the schema. The description's compute-mode passage largely repeats the schema enum text and only gestures at policy_parameters ('See the tool's manifest for field names'), 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title restates the tool as an 'ETR Singularity & Exclusive-Control Evidence Checker' and the description labels it a 'compliance_mandate' compute node that exports an AP2 artifact, so the general domain is visible. But it never plainly states what the check actually verifies or what distinguishes it from siblings like lint_aiuc1_control_evidence or compose_control_test_evidence. The jargon 'ETR Singularity & Exclusive-Control' is never unpacked.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 only routing hints are 'Output feeds: art-55-trade-document-provenance-verifier' and the compute-mode mechanics, which are downstream/parameter concerns, not selection criteria. No when-not or prerequisite conditions are given.
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 CheckerARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value beyond them: server-side vs browser delegation semantics, the gpu:true always-delegate rule, transient processing with no storage/logging, and AP2 export with execution_hash. It omits rate limits and expected latency, hence 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and information-dense, but it conflates three or four concerns (regulatory deadlines, compute binding, retention policy, provenance/hash metadata) in a single wall of text, and the trailing full SHA-256 FV-status URL is bulky relative to its value to an agent choosing a tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 shape (AP2 artifact, browser delegation URL) and downstream consumers. The critical gap is policy_parameters: an agent is never told which fields the decision function requires, and 'see the manifest' is not actionable at call time for a zero-required-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 largely restates the schema's own `compute` description, and the decision-function inputs (policy_parameters) are deferred to 'the tool's manifest' rather than explained, adding little beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: an EUDI Wallet credential-acceptance readiness check, anchored to a concrete regulatory deadline (Nov 2026). It is distinguishable from other readiness siblings (assess_psd3_readiness, run_eudr_readiness_fit), though the body never says what criteria the check actually evaluates, spending most of its length on compute plumbing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The regulatory deadline and 'Use synthetic or anonymised inputs only' give usable context for when this applies, and the 'Output feeds' line hints at sequencing. However, there is no explicit when-not-to-use, no named alternative tool, and no statement of prerequisites for the check itself.
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 CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_fatca_crs_submission_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage or logging, the auto/server/browser compute semantics with gpu:true forcing delegation, and the AP2 artifact with execution_hash for provenance. That is substantive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text opens by restating the title, then spends most of its length on compute-node mechanics, privacy boilerplate, an external URL, and an FV-status receipt hash that do not help an agent decide whether or how to call this tool. For a selection-oriented description this is bloated and poorly front-loaded with task-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter compliance-check tool with no output schema, the description covers execution mechanics and data handling adequately but leaves the core conformance semantics and the contents of policy_parameters deferred to an external manifest. An agent has enough to invoke it, but not enough to anticipate what the check returns or requires.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reinforces the compute-mode semantics that the schema also documents, but says nothing about parent_hashes, parent_tool_ids, or the policy_parameters object beyond pointing at a manifest, adding little over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first line state a verb (check) and resource (FATCA/CRS submission conformance), but the description body never explains what conformance criteria are evaluated or what a submission is checked against. Beyond the title, the text is generic compute-node infrastructure boilerplate, so an agent learns little purpose detail it didn't already get 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.
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 reference to near siblings like track_fatca_crs_ro_remediation_closure or classify_carf_reportable that an agent might confuse it with. The only routing-adjacent text concerns compute mode, not task 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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_fido_pqc_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral value: transient processing with no storage/logging, deterministic computation, server-vs-browser delegation semantics, and AP2 artifact export with execution_hash for chain provenance. The 'use synthetic or anonymised inputs only' constraint is genuinely useful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with infrastructure boilerplate (OpenChainGraph node preamble, a full https URL, and a long FV-status hash path) that crowds out the actual check semantics. The signal-to-noise ratio is poor and the useful chaining/data-handling facts are buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param tool with a nested policy_parameters object and no output schema, the description covers execution mode, chaining, provenance, and data handling reasonably. However, it never explains what the PQC conformance decision function tests, and it punts output shape to describe_tool, leaving the core operation under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 but adds no syntax or format detail beyond the schema, and it explicitly defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state the verb+resource (check FIDO2/WebAuthn PQC conformance), but the description body mostly restates the title and pivots to compute-node infrastructure rather than explaining what the conformance check actually evaluates or what counts as a pass/fail. An agent knows the topic but not the operational purpose, and it is not distinguished from siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use guidance and no when-not-to-use or alternative routing. The description notes upstream artifact consumption (art-85-pqc-timeline-fit-diagnostic) and downstream feeding (cry-05-agent-action-audit-trail-aggregator), which gives chain context, but that is provenance plumbing rather than selection 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.
check_g20_corridor_cost_gapG20/FSB Corridor Cost-Gap CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_g20_corridor_cost_gap").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite annotations already declaring read-only/idempotent/non-destructive, the description adds genuinely new behavioral context: deterministic server-side vs browser execution, gpu:true always delegating, transient processing with no storage/logging/retention, synthetic-input-only constraint, and an AP2 artifact export with execution_hash. These are traits the annotations do not cover, though the response shape is only pointed at indirectly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the text is padded with repeated 'OpenChainGraph compute node' phrasing, a raw fv-status file path with a 64-char hash, and a snapshot disclaimer. Several sentences about receipts and provenance are low-value for an agent deciding whether to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does point the agent to describe_tool for the return shape and explains compute/retention/artifact behavior. However, for a nested-object parameter tool it leaves the actual decision-function fields undocumented ('See the tool's manifest'), so an agent cannot construct policy_parameters from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 is 3. The description restates the compute modes but adds nothing about policy_parameters field names beyond telling the agent to consult the manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first clause establish this as a G20/FSB corridor cost-gap computation, and it is explicitly labelled a 'risk_parameter' compute node. But it never says what the cost gap measures or what inputs drive it, and it does not distinguish itself from close siblings such as compare_corridor_cost or model_stablecoin_corridor_economics. Purpose is implied rather than stated as a clear verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 corridor/cross-border cost siblings, and no prerequisites or conditions are given. The only routing help is boilerplate about the compute mode and a URL, 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_genius_reserve_disclosureGENIUS Act Monthly Reserve Disclosure CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_genius_reserve_disclosure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful behavior: deterministic server-side compute with kernel registration, the auto/server/browser delegation semantics, transient processing with no storage/logging/retention, the 'synthetic or anonymised inputs only' constraint, and an exported AP2 artifact carrying execution_hash. These go well beyond the annotations, though the browser-delegation return shape is only partially characterized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the title, but a large fraction of the text is metadata scaffolding (regulatory deadline dates, URL, a 64-character FV-status hash, chain-provenance boilerplate) that an agent does not need in order to select or call the tool. The operational content is buried among it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterized compute node with no output schema, the description points to describe_tool for the output contract, which partially compensates. But the actual decision inputs live in an opaque policy_parameters object whose field names are only 'in the manifest', so an agent cannot know what to submit without an extra lookup, and the return artifact structure is unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 prose largely duplicates the schema's compute field. The description adds nothing about policy_parameters contents, deferring 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line identify it as a GENIUS Act monthly reserve disclosure checker and a compliance_mandate compute node, so the general domain is clear. However the description never states operationally what it checks or what it evaluates beyond restating the name, and it does not distinguish itself from the near-identical sibling check_genius_reserve_disclosure_conformance. 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.
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 routing against the very similar check_genius_reserve_disclosure_conformance or check_mica_reserve_disclosure siblings. The only usage-adjacent text is the compute-mode default and the downstream 'Output feeds' pointer, neither of which tells an 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_genius_reserve_disclosure_conformanceGENIUS Act Reserve-Disclosure Conformance MonitorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_genius_reserve_disclosure_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 facts: inputs are processed transiently and never stored, logged, or retained; synthetic/anonymised inputs only; and an AP2 artifact with execution_hash is exported for provenance. The compute-mode explanation largely duplicates the schema's own compute description, which dilutes it slightly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is stated up front, but the body is dominated by generic infrastructure boilerplate (Cloudflare Workers, browser delegation, FV-status receipt URL, an 'Open at' URL) that does not help an agent decide or invoke. Several sentences, notably the research-file citation and hash-laden verification URL, do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers execution mechanics and data handling but never says what reserve-disclosure requirements are evaluated or what a conformance result means, deferring returns to describe_tool. It is minimally adequate but leaves the agent without the domain substance of the check.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 paragraph restates the same behavior rather than extending it. The description defers policy_parameters field names to 'the tool's manifest,' adding no semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource: a GENIUS Act reserve-disclosure conformance check, and the regulatory deadline context anchors what the check is about. However, it never distinguishes itself from the near-identical sibling check_genius_reserve_disclosure (nor check_mica_reserve_disclosure), so an agent cannot tell which conformance check to select 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.
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 mention of alternatives, despite a sibling with an almost identical name. The deadline/re-verification note is regulatory context, not invocation 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.
check_gpai_code_conformanceGPAI Code of Practice ConformanceBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_gpai_code_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage/logging/retention, the requirement to use synthetic or anonymised inputs, the compute-mode delegation semantics, and the emitted AP2 artifact carrying execution_hash. These are real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is heavily boilerplate-driven: compute binding, Cloudflare Workers kernels, FV-status hash URLs and an offline-receipt caveat crowd out the tool's actual function. The purpose is buried mid-sentence rather than front-loaded, and much of the text would be identical on every sibling node.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param compliance node with no output schema, the description does supply chain position, privacy posture, compute semantics, and a pointer to describe_tool for the output shape. However, it never explains what the conformance check decides or what fields policy_parameters expects, leaving a real gap for the invoking agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 policy_parameters beyond pointing to 'the tool's manifest for field names', so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title prefix names the resource ('GPAI Code of Practice Conformance') and the description labels it a 'compliance_mandate' compute node, so the domain is identifiable. But the body is dominated by generic execution plumbing rather than stating what the conformance check actually evaluates, and it never distinguishes itself from sibling checks like assess_ai_act_conformity, check_mica_reserve_disclosure_conformance, or lint_mcp_server_conformance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied, via provenance: it consumes from art-174-nist-ai-rmf-function-mapper and feeds art-176-ai-governance-readiness-diagnostic, which tells the agent where it sits in a chain. There is no explicit when-to-use statement, no exclusion of alternatives, and no guidance on which inputs make the check apply.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_icm_quorum_forgery_risk").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 nonetheless adds real behavioral context beyond annotations: transient processing with no storage/logging/retention, server-vs-browser execution delegation rules, and an AP2 artifact export carrying execution_hash for provenance. These are useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with duplicated boilerplate ("OpenChainGraph compute node" appears twice in succession), embedded URLs, a raw /fv-status/ hash path, and a pointer to describe_tool for the output schema. Sentences about infra provenance crowd out any statement of what the tool decides; low signal-to-noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 right thing by routing the agent to describe_tool for the return shape, and it covers compute routing, retention, and artifact export. However, it leaves the tool's actual decision criteria and the expected policy_parameters manifest entirely unexplained, so an agent still has to fetch external resources before it can call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's compute-mode recap largely duplicates the schema's own enum description, and it explicitly defers field names to "the tool's manifest," so it adds little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (analytics_mandate)" and repeats the title's class label, but never states what it actually computes or checks about ICM quorum forgery risk. The only purpose information is a restatement of the name/title; an agent cannot tell from the text what the decision function does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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-hygiene rule, not a when-to-use or when-not-to-use rule. No sibling alternative is named and no scenario is given for choosing this tool, despite the huge sibling list of adjacent check_*/classify_* tools.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_ifrs17_risk_adjustment").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond that with real behavioral context: transient input processing with no storage/logging/retention, a synthetic-inputs-only constraint, compute mode routing (auto/server/browser, GPU delegation), 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by OpenChainGraph boilerplate, a URL, and an opaque FV-status hash receipt, none of which help an agent decide or call the tool. What the tool computes is never front-loaded, and the useful facts are buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a free-form nested policy_parameters object whose field names are deferred to 'the tool's manifest', the description should carry more. It covers execution environment, privacy, and provenance adequately, but leaves the decision function's inputs and any notion of the result under-described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the artifact chaining purpose but adds no field-level syntax or format detail beyond the schema. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state the resource (IFRS 17 risk adjustment) and the verb is implied by 'Checker', but the description never elaborates what the check actually evaluates or returns. It adds infrastructure detail (deterministic compute node, compliance_mandate) and names an upstream sibling artifact, which is a mild differentiator, but the core purpose is left at the level 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.
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 numerous sibling check/validate/recompute tools. The only routing information is the upstream dependency 'Consumes upstream artifacts from: art-178-ifrs17-csm-rollforward-validator', which hints at chain position but does not say when an agent should call it.
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 ReconciliationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_iolta_three_way_reconciliation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: deterministic execution, transient processing that is 'not stored, logged, or retained', AP2 artifact export with execution_hash, and server-vs-browser delegation behavior. It stops short of describing the reconciliation result 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Placeholder
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers the output shape to describe_tool rather than summarizing it. More importantly, policy_parameters — the nested object carrying the actual decision inputs — is left to 'See the tool's manifest', so the definition is not complete enough for an agent to know what to pass.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 baseline is 3. The description mentions execution_hash for provenance, which loosely maps to the parent_hashes chain parameters, but adds no syntax or semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title and labels the tool a 'compute node (compliance_control)' but never explains what a three-way IOLTA trust reconciliation computes or verifies. An agent learns the tool exists and is deterministic, not what it does or how it differs from check_safeguarding_reconciliation, attest_daily_reconciliation, or check_nway_balance_closure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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' plus the compute-mode selection, which is input hygiene rather than routing guidance. There is no statement of when this tool applies versus the numerous sibling reconciliation/compliance tools.
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 CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_irrbb_csrbb_scope").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent annotations, the description discloses concrete behavioral traits: compute:"auto" runs server-side on Cloudflare Workers for gpu:false nodes, compute:"browser" forces client-side execution and returns a delegation URL, gpu:true nodes always delegate, inputs are processed transiently and not stored/logged/retained, synthetic inputs are required, and an AP2 artifact with execution_hash is exported. This is substantial context not carried by any structured field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated and front-loaded with infrastructure metadata ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node' — a near-verbatim repetition). The FV-status paragraph and hash URL consume significant space without helping an agent decide or invoke, burying the operational details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema (only a pointer to describe_tool), and the description does not explain what the check returns — a scope verdict, a pass/fail, a score — despite the tool being a decision function. Chaining and data-handling behavior are well covered, but the return semantics of a compliance scope check remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 syntax or constraints beyond the schema, and policy_parameters is left to 'See the tool's manifest for field names' — the baseline 3 for schema-driven parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line identify the resource (IRRBB/CSRBB scope for a compliance mandate), but the description never states what the check actually determines — no verdict, applicability rule, or scope criterion is described. It also does not differentiate itself from close siblings like map_irrbb_standardised_approach or run_irrbb_disclosure_fit, so an agent must infer the purpose solely from the chain placement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use versus when-not-to-use guidance. The chain notes ('consumes upstream artifacts from art-186…', 'output feeds art-188…') imply sequencing context, but that is positioning, not a rule for selecting this tool over alternatives, 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.
check_iso20022_pqc_readinessSWIFT / ISO 20022 PQC Readiness CheckerARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_iso20022_pqc_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, it discloses compute routing (auto/server/browser, gpu:true browser delegation), transient processing (not stored, logged, or retained), provenance/artifact export with execution_hash, and upstream/downstream chain connections. This is rich operational context for an idempotent read-only node.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and mixes necessary compute behavior with repeated qualifiers, a full URL, a long FV-status hash, and an instruction to call describe_tool. It is not front-loaded as a concise definition; several clauses could be removed without losing call-selection signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic compute node with no output schema, it covers execution location, data handling, artifact provenance, upstream dependencies, and output consumer, and it directs the agent to describe_tool for the output schema. The main missing piece is a direct summary of the readiness verdict or artifact fields, but the provenance context is otherwise substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 and points to the manifest for policy fields, adding little beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States it is a SWIFT/ISO 20022 PQC readiness checker and names its position in a chain (consumes art-85-pqc-timeline-fit-diagnostic, 500-hndl-quantum-risk-scorer; feeds cry-04-merkle-batch-verifier), distinguishing it from generic check/run siblings. However, the opening 'OpenChainGraph compute node' jargon is less informative than the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternatives among the many check_* and run_* diagnostics. The only usage constraints are 'Use synthetic or anonymised inputs only' and compute-mode selection, which are input conditions rather than selection criteria.
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 CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_jwks_pinned_directory").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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-redundant behavior: compute mode routing (auto/server local kernel vs browser delegation URL, gpu:true always delegates), transient non-storage of inputs, and export of an AP2 artifact with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly half the text is internal platform metadata (compute binding, FV-status receipt URL, chain-graph artifact IDs, offline-verification note, describe_tool pointer) that crowds out the one thing an agent needs — what this control checks. Wasteful relative to the informational payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 operational detail: what the check decides and what policy_parameters fields it accepts. It supplies pipeline position and a return-schema pointer but leaves the central decision function undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the description merely echoes the compute-mode semantics already spelled out in the schema. It adds nothing about policy_parameters beyond 'see the tool's manifest', so it neither compensates nor extends the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('JWKS Pinned-Directory Check') and labels it an 'OpenChainGraph compute node (compliance_control)', but never states what the check actually verifies about the JWKS pinned directory — pinned key match? rotation? expiry? The only real content is provenance plumbing (upstream art-129 signature verifier, downstream art-130 directory validator), which hints at context but not at the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 against the many sibling validators (e.g. validate_signature_directory, verify_webbotauth_signature), and no exclusions. The only directive is the caution to use synthetic/anonymised inputs, which is a data-handling rule, 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.
check_lei_relationship_consistencyLEI Relationship Consistency CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_lei_relationship_consistency").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, non-destructive, closed-world. The description usefully adds that inputs are processed transiently and not stored/logged/retained, that server vs browser execution can be forced via compute, and that an AP2 artifact with execution_hash is exported for provenance. That is real behavioral context beyond the annotations, though it does not describe what the check returns or how failures are signalled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense, front-loaded block of infrastructure boilerplate (compute-binding wording, Cloudflare Workers, FV-status hash URL, AP2 provenance) that crowds out the actual subject of the tool. The one genuinely operational sentence ('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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description defers return-value information to describe_tool and field names to 'the manifest', leaving the agent without the substance of the check. For a compliance-decision node built on a nested policy_parameters object, the definition should at minimum say what consistency is validated and what the artifact contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only re-states the compute-mode semantics already present and vaguely refers to 'the tool's manifest for field names' for policy_parameters, adding no new syntax or format detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the name/title ('LEI Relationship Consistency Checker: OpenChainGraph compute node (compliance_control)') and then pivots to infrastructure boilerplate. It never explains what 'relationship consistency' actually verifies (e.g., parent/child LEI linkage, corporate hierarchy, upstream/downstream entity coherence), so an agent cannot tell what the tool computes versus siblings like lei_kyb_check 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only concrete guidance is 'Use synthetic or anonymised inputs only' and the compute-mode explanation, neither of which is a when-to-use statement. Nothing distinguishes it from the many other LEI/compliance checkers in the sibling list, and 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.
check_license_compatibilityLicense Compatibility CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_license_compatibility").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 low. The description adds real context beyond that: inputs are processed transiently and not stored/logged, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for provenance. The 'synthetic or anonymised inputs only' caveat is a genuinely useful behavioral constraint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with redundant self-description ('OpenChainGraph compute node' stated twice), a raw FV-status receipt hash URL, an HTML link, and a pointer to describe_tool for the output schema. The single sentence about what the tool actually checks is absent, so length is spent on metadata rather than substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance calculation with a nested policy_parameters object and no output schema, the description should explain what is being checked and what a result means. Instead it documents plumbing and provenance while omitting the decision semantics entirely, leaving the agent unable to reason about correct invocation or interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully — baseline 3. The description echoes the compute-mode semantics already in the schema and mentions chaining/execution_hash generically, adding little beyond it, and explicitly defers policy_parameters field names to a manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title clearly say 'check license compatibility,' but the description itself never explains what compatibility means here — no criteria, no inputs, no scope. It spends its words on infrastructure metadata (compute node, kernel, execution_hash) and chaining pointers rather than the actual compatibility-checking behavior, so an agent gets only a vague sense of the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 nearby license siblings (select_embedded_license, choose_cc_license, compare_rights_matrix, certify_license_election, assemble_license_terms). The only usage-like content is the compute-mode tradeoff (auto/server/browser), which is an execution detail rather than a when-to-use signal.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_linea_l2_finality_window").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds real behavioral context beyond them: compute-mode routing (server vs browser delegation for gpu:true nodes), transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash for provenance. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the name, but the body repeats 'OpenChainGraph compute node' twice, embeds a raw URL and a long hash path plus a FV-status note that reads as a receipt memo rather than tool guidance. Little of it earns space against the missing core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, free-form policy_parameters object and no output schema, the description should explain what inputs the decision function needs and what the classification returns. Instead it defers the output contract to describe_tool and leaves policy_parameters unspecified, so an agent cannot confidently invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parameters are already documented. The description's compute-mode text mirrors the schema enum without adding format or example detail, and it never explains what keys policy_parameters should carry (deferred to an external manifest). Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Linea L2 Finality Window Classifier') and then pivots to generic platform boilerplate about being a 'deterministic OpenChainGraph compute node (compliance_mandate)'. It never says what the finality-window decision actually evaluates or how it differs from siblings like classify_ledger_consensus_finality, 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.
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 against the many sibling classifiers. The only usage constraint given is 'Use synthetic or anonymised inputs only', which is an input-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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| step | Yes | The step object from the definition's steps[] array being completed. | |
| evidence | No | Evidence payload, e.g. { text_digest }, { file_sha256 }, or { attestation_digest }. Required unless evidence_requirement is "none". | |
| timestamp | Yes | ISO 8601 completion timestamp (caller-supplied for determinism). | |
| step_index | Yes | Zero-based index of this step in the definition. | |
| completer_key | No | Identifier of who/what completed the step (e.g. an agent id). Never real PII. | |
| definition_digest | Yes | The definition_digest from checklist_validate_definition. | |
| prev_step_receipt_digest | No | execution_hash of the previous step's receipt. Omit for the first step in the run. |
TDQS
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.
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.
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.
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.
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.
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 definitionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| definition | Yes | The checklist/SOP definition object to validate. |
TDQS
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.
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.
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.
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.
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.
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 rootARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| run_receipt | No | The run receipt to check the Merkle root and its own execution_hash against. Omit to check only the step chain. | |
| step_receipts | Yes | Ordered array of step receipts, as returned by checklist_step_receipt. |
TDQS
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.
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.
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.
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.
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.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_mcp_registry_entry").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description meaningfully adds beyond them: transient processing with no storage/logging/retention, the compute:"auto" vs "browser" execution split, browser delegation for gpu:true nodes, and the AP2 artifact with execution_hash for chain provenance. It omits any mention of authentication/permission requirements, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with the title but then front-loads repetitive boilerplate ('OpenChainGraph compute node' stated twice, an FV-status snapshot URL with a hash, offline receipt disclaimers) before reaching any actionable content. Several sentences, such as the FV-status file path, do not earn their place for an agent trying to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 points to describe_tool for return values while disclosing that an AP2 artifact is exported. However, for a 'conformance checker' it never says what the conformance verdict or checks are, leaving a notable gap for an agent deciding whether output satisfies its need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 from the schema and adds no new meaning for 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title identify it as an MCP registry entry conformance checker, but the description body never states what conformance properties are actually checked or what a result means. It is also indistinguishable in text from close siblings like lint_mcp_server_conformance, validate_mcp_server_json and validate_mcp_authorization_metadata. Purpose is only inferable from the title, not from the description prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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') but no statement of when to use this tool versus the many sibling conformance/validation tools. The only routing information is the upstream dependency on art-148-mcp-authorization-metadata-validator, which is a pipeline fact, not guidance.
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 CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_mica_register_presence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, but the description adds genuinely useful behavioral context beyond them: inputs are processed transiently and not stored or logged, browser delegation produces a URL instead of a result, and an AP2 artifact with execution_hash is exported. It stops short of describing what the check itself returns or how it decides, but it is well above 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and front-loads infrastructure metadata ('Deterministic OpenChainGraph compute node' is stated twice) rather than the tool's actual function. Much of the content is platform-wide boilerplate that does not earn its place relative to the single sentence an agent needs about what the check does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return values, and it only points to describe_tool("check_mica_register_presence") for the output shape. For a compliance decision node with a nested policy_parameters object, the description leaves the core semantics (what presence means, what result is produced) undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, parent_tool_ids, and policy_parameters thoroughly. The description adds no field-level meaning beyond the schema and explicitly defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states in domain terms what the presence check actually determines against the MiCA register; it opens with 'MiCA Register Presence Check: OpenChainGraph compute node (compliance_mandate)', which largely restates the title/name. An agent must infer the purpose from the name alone, and the only differentiating content is infrastructure boilerplate about compute modes and artifact export.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 closely related siblings such as check_mica_reserve_disclosure, assess_mica_casp_readiness, or run_mica_casp_fit. The only conditional advice concerns compute routing (auto/server/browser), which is execution mechanics rather than usage selection.
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 DisclosureCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_mica_reserve_disclosure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), but the description adds genuine behavioral context beyond them: transient processing with no storage/logging/retention, deterministic server-side vs browser-delegated execution, and an AP2 artifact carrying execution_hash for chain provenance. These are useful disclosures 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dominated by infrastructure boilerplate (OpenChainGraph node, Cloudflare Workers kernels, FV-status JSON URL) while the actual purpose gets one clause. The trailing 'Output schema: call describe_tool(...)' and embedded spec URL are noise relative to what an agent needs to pick and call this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers return semantics to describe_tool and field names to a manifest, so an agent cannot tell what a 'check' yields (pass/fail, findings, hashes). For a compliance-mandate tool with nested policy_parameters, that leaves the core behavior unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name is restated ('Check MiCA Reserve Disclosure: OpenChainGraph compute node (compliance_mandate)') but the tool's actual function — what aspect of a MiCA reserve disclosure is checked and against what rule set — is never stated. The description spends its words on compute plumbing rather than the substantive verb+outcome. Siblings like check_genius_reserve_disclosure, check_mica_register_presence, and recompute_stablecoin_reserve_3source 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.
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 reserve/disclosure checkers in the sibling list. The only usage constraint offered ('Use synthetic or anonymised inputs only') is a data-handling caveat, 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_mt101_coexistence_readinessSwift MT101 Coexistence Readiness DiffCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage or logging, the server-vs-browser execution split, and an AP2 artifact export carrying execution_hash. It stops short of describing what the computation produces, which keeps it off 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dominated by generic OpenChainGraph marketing, a raw fv-status URL, and provenance boilerplate, while the actual purpose is compressed into the first fragment. The genuinely useful content is buried rather than front-loaded, and 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description only hints at a return value (an AP2 artifact with execution_hash) and never says what the readiness assessment reports. Combined with the opaque policy_parameters object, an agent lacks enough to know what it will receive back from this diagnostic.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 rule, so the schema does the heavy lifting. The description adds nothing about policy_parameters beyond deferring to the manifest, which is the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state a verb+resource ('Swift MT101 Coexistence Readiness Diff'), but the description body never explains what a 'readiness diff' actually evaluates or what it compares against. It is largely a restatement of the title plus generic platform boilerplate, so a sibling like score_mt_mx_translation_fidelity cannot be distinguished by reading the prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no preconditions, and no mention of alternatives among the many MT/ISO 20022 siblings. The only conditional language concerns compute mode, not task selection.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_muni_arbitrage_spending_exception").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is largely covered structurally. The description adds meaningful behavior beyond that: transient processing with no storage/logging, server-vs-browser execution semantics with a delegation URL, and export of an AP2 artifact carrying execution_hash for provenance. It stops short of describing the compliance decision logic or return semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with the checker name but then devotes most of its length to execution-infrastructure boilerplate that is duplicated ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.'). A long FV-status URL and a pointer to describe_tool add bulk, while the compliance behavior an agent needs is absent. Poor front-loading of the substance and noticeable redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 bears more burden for explaining what is returned, yet it only says an AP2 artifact with execution_hash is exported and points to describe_tool for the output schema. The decision content — what inputs policy_parameters should carry and what result a spending-exception check yields — is not covered, leaving a gap for a nested-object, four-parameter compliance tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, including the compute enum, which the description merely restates. For the most important parameter, policy_parameters, the description defers rather than explains ('See the tool's manifest for field names'), adding no real semantic value beyond the schema. Baseline 3 is appropriate given the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name state a domain-specific check ('Muni Arbitrage Spending-Exception Checker') and it is labelled a compliance_control, so the resource is identifiable. But the description never explains what the check actually determines (e.g., whether a municipal bond issuance qualifies for the arbitrage spending exception) or what a pass/fail means. The bulk of the text describes execution infrastructure rather than the tool's purpose, leaving the actual compliance semantics implied by 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.
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 check versus alternatives, no prerequisites, and no eligibility conditions. The only usage-type instruction is 'Use synthetic or anonymised inputs only' and the compute-mode notes, which are input-hygiene/execution guidance 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.
check_nis2_art21_measuresNIS2 Article 21 Gap Checker (Ten Cybersecurity Risk-Management Measures)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_nis2_art21_measures").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the bar is lower, and the description still adds useful non-obvious traits: deterministic execution, transient processing with no storage/logging/retention, a synthetic-inputs-only constraint, and AP2 artifact emission 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is buried behind title restatement, repeated 'deterministic OpenChainGraph compute node' phrasing, kernel/GPU delegation mechanics, and an FV-status hash dump. Much of this is boilerplate shared across the tool family rather than information specific to this call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Chaining context and provenance behavior are covered, and the lack of an output schema is partly mitigated by pointing to describe_tool. Still, the actual gap-check inputs and the shape of the assessment result are left unstated, which for a compliance-mandate compute node is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported as 100%, so the baseline is 3, and the compute enum semantics are documented in both places. But the functionally critical policy_parameters object is a free-form object whose description defers to 'the tool's manifest for field names', so neither schema nor prose tells the agent what decision inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title identifies the resource (NIS2 Article 21, ten risk-management measures) and the operation is a gap check, so the general intent is inferable. However, the description proper is dominated by infrastructure boilerplate (compute modes, kernel registration) and never states plainly what the tool produces or how it differs from near siblings like check_nis2_governance_readiness or score_nis2_supply_chain_diligence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names upstream (art-141-nis2-entity-scope-classifier) and downstream (art-143-nis2-penalty-exposure-calculator) artifacts, which hints at pipeline position, but there is no when-to-use vs alternatives guidance and no exclusions relative to the other NIS2 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.
check_nis2_governance_readinessNIS2 Governance Readiness Checker (Art. 20 — Management Body Accountability)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 non-obvious behavior: deterministic execution, server-side vs browser delegation rules for gpu:false/gpu:true nodes, transient non-retained inputs, execution_hash provenance, and the upstream art-145 artifact dependency. It stops short of describing what the decision function evaluates, but the operational traits are 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode behavior is stated twice (once in prose, once verbatim in the schema), and the body carries heavy boilerplate: node-class preamble, export URL, and a long FV-status snapshot hash. Useful provenance is buried rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Execution model, provenance, and input-hygiene constraints are covered, but the central question for a 4-parameter tool with an open-ended nested policy_parameters object — which fields drive the Art. 20 assessment and what outcome results — is left entirely to an external manifest. No output schema exists, so that gap is not compensated elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description echoes the compute semantics and notes that policy_parameters accepts any key, but explicitly defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/description identify the topic as an NIS2 Art. 20 management-body governance readiness check, which is more specific than a bare name. However, the body never states what the check actually computes or what evidence it returns, and it does not distinguish itself from close siblings such as check_nis2_art21_measures, classify_nis2_entity, or score_nis2_supply_chain_diligence beyond the article number in the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 NIS2 siblings. The only operative guidance is input hygiene ('Use synthetic or anonymised inputs only') and compute-mode mechanics, neither of which helps an agent choose 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.
check_nway_balance_closureN-Way Balance Closure CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_nway_balance_closure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful behavioral context beyond that: inputs are processed transiently and not stored/logged/retained, browser delegation occurs for gpu:true nodes, and the tool exports an AP2 artifact 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text repeats 'OpenChainGraph compute node' and includes a raw URL plus an FV-status receipt path that do not help an agent select or invoke the tool. It is not front-loaded with a clear purpose statement, and several sentences are boilerplate rather than tool-specific guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description reasonably points to describe_tool for results, but the core semantics of an n-way balance closure check and the expected outcome remain unexplained. For a compliance/control compute node with nested policy_parameters, this leaves the agent without enough domain context to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 input schema. The description repeats the compute modes and points to the manifest for policy_parameters but adds no syntax, format, or constraint information beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description repeats the title and identifies the tool as an OpenChainGraph compliance_control compute node, but it never states what an N-way balance closure check actually does or what decision it performs. It does not distinguish this tool from the many sibling check_* tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives compute-mode selection guidance for auto/server/browser and warns to use synthetic or anonymised inputs, but it does not say when to use this check versus alternatives or what prerequisites are required. There is no routing or exclusion guidance relative to sibling tools.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_official_statement_completeness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored or logged, execution is deterministic, a compute mode can force client-side execution returning a delegation URL, and the node exports an AP2 artifact carrying an execution_hash for chain provenance. The privacy and provenance disclosures are exactly the kind of trait 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, but the remainder is dense framework boilerplate repeated across the node family, including a long FV-status receipt sentence with a 64-character hash that contributes little to tool selection. The pointer to describe_tool for the output schema is a reasonable final line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose policy_parameters object is opaque (additionalProperties with no field names) and which has no output schema, the description leaves the agent unable to tell what inputs a completeness check actually requires. It explains execution and provenance plumbing thoroughly but never describes what is being validated or what a 'complete' statement looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 restates compute-mode semantics (partly redundant with the schema) and adds the Cloudflare Workers detail, but says nothing about parent_hashes ordering or what belongs inside policy_parameters beyond pointing to an external manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title clause states a specific resource ('Municipal Official Statement') and a specific operation ('Completeness Checker'), so the domain is identifiable. However, the description body never elaborates on what 'completeness' means here, and with dozens of sibling '*_completeness' and 'check_*' tools it gives no basis for distinguishing this one. It is a restatement of the title plus framework boilerplate rather than an explanation of the check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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' plus compute-mode mechanics (auto/server/browser), which is framework behavior, not tool-selection guidance. There is no statement of when a municipal official statement completeness check applies, what triggers it, or why an agent would pick this over check_cra_annex1_completeness or check_emir_uti_completeness.
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 PortabilityCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_operator_exit_portability").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, or retention; browser delegation behavior for gpu:true nodes; and the fact that it exports an AP2 artifact carrying an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with infrastructure internals, a documentation URL, and an FV-status hash, while the actual check semantics are never front-loaded. Several sentences do not help an agent select or invoke the tool correctly, so structure and economy are poor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 clarify returns; it only says an AP2 artifact with execution_hash is exported and defers the rest to describe_tool. The privacy and delegation behavior is covered, but the tool's actual decision output remains underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 nothing about the chaining params or policy_parameters field names, leaving the schema to carry the load — the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as an OpenChainGraph compute node for an 'Operator Exit & Data Portability' (attestation_mandate) check and states it exports an AP2 artifact with execution_hash. However, it never explains what the check actually evaluates — the substantive purpose is buried under platform/infrastructure boilerplate, so an agent cannot easily distinguish it from other 'check_*' compliance nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a usage constraint ('use synthetic or anonymised inputs only') and describes compute-mode selection, but provides no when-to-use/when-not guidance relative to any sibling tool. No alternative is named and no triggering condition is stated.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_private_student_loan_disclosures").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs are required, and an AP2 artifact with execution_hash is exported for chain provenance. That is meaningful operational context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Much of the text is generic platform boilerplate (kernel registration, Cloudflare Workers, FV-status snapshot disclaimer, export instructions) that is padded into an over-long paragraph for a tool whose actual behaviour is one sentence. The tool-specific content is buried behind boilerplate instead of front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a free-form nested policy_parameters object, the description carries the burden of explaining what inputs the decision function expects — and it defers entirely to 'the tool's manifest for field names'. It also omits what the disclosure/rescission check tests for, leaving an agent unable to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 merely mirrors the schema text. Baseline 3 applies, and the opaque policy_parameters bag is deflected to an external manifest rather than explained, so no extra meaning is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('Private Student Loan Disclosure & Rescission Checker') and then labels it a 'compute node (compliance_mandate)'. It never states what the check actually evaluates or what a passing/failing disclosure looks like, so an agent learns nothing about the decision function beyond the name. No sibling differentiation against close neighbours like check_retail_installment_disclosures or check_reg_e_remittance_disclosure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling 'check_*' tools. The only routing information concerns compute mode (server vs browser), which is parameter behaviour rather than task-selection guidance.
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 CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_producer_license_reciprocity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, synthetic/anonymised inputs only, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported. These data-handling and provenance details go beyond the annotations and matter for a compliance tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate — compute binding rules, a long FV-status URL with a 64-character hash, and a pointer to describe_tool — while the actual purpose is never stated. Content is not front-loaded toward the agent's decision to call the tool; an entire sentence is wasted on a snapshot offline-verification note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter compliance-decision node with a nested policy_parameters object and no output schema, the description should explain what the reciprocity check evaluates and what result to expect. Instead it covers only execution plumbing, leaving an agent unable to predict inputs or interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, giving a baseline of 3. The description echoes the compute-mode semantics but adds nothing about parent_hashes/parent_tool_ids pairing or what policy_parameters fields the decision function expects beyond pointing at 'the manifest'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 describes only the OpenChainGraph compute infrastructure. It never states what the check actually verifies — which states' reciprocity rules, what conditions, or what the verdict means. An agent learns the tool is a 'compliance_mandate' node but not what compliance 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.
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 the many adjacent license tools (check_license_compatibility, verify_license_election, certify_license_election, check_agency_eligibility_matrix). The only 'when to use' content concerns compute modes (auto/server/browser), which is execution routing 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.
check_purpose_code_requirementISO 20022 Purpose Code Requirement CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_purpose_code_requirement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so safety is covered. The description adds real value beyond that: compute-mode behavior, server vs browser delegation, transient non-retention of inputs, AP2 export with execution_hash, and downstream consumer art-247-prevalidation-readiness-scorer. One caveat is that 'browser' mode returns a URL rather than a result, which is disclosed but could be clearer about what the caller actually receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense, comma-spliced block of infrastructure metadata (kernel registration, Cloudflare Workers, receipt URL, FV-status hash) that largely serves the platform rather than the tool-selection decision. It is not front-loaded on the tool's purpose, and most sentences could be trimmed or moved to structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, no-output-schema, gateway-style tool, the description covers compute mode, privacy, provenance, and downstream linkage, which is reasonably complete. However, it never states what the check actually evaluates or returns, and defers output semantics to describe_tool, leaving a gap on the core compliance decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the compute enum, parent_hashes/parent_tool_ids pairing, and policy_parameters all documented in-schema. The description adds nothing to those semantics beyond echoing the compute-mode default, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool name and title specify a concrete verb+resource ('ISO 20022 Purpose Code Requirement Checker'), but the description body leads with infrastructure metadata ('OpenChainGraph compute node (compliance_mandate)') rather than reinforcing what the check actually decides. For a checker in a field of many similarly named 'check_*' siblings, the description fails to distinguish the compliance decision it renders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is limited to operational routing rules ('auto' vs 'browser', gpu:true delegation, synthetic-input-only admonition). There is no statement of when this compliance check should be invoked versus a sibling like check_mica_register_presence or check_iso20022_pqc_readiness, so selection across the many check_* tools 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.
check_qm_points_and_feesQM Points and Fees TestBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_qm_points_and_fees").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower; the description adds meaningful context on top: server-side vs browser delegation semantics, transient non-retention of inputs, AP2 artifact export with execution_hash, and an offline-verifiable FV-status receipt. This is genuine 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The block is front-loaded with identity and compute behavior, but the receipt-verification sentence and the raw FV-status URL add bulk that is not actionable for tool selection, and the dense run-on sentences mix infrastructure boilerplate with what little functional signal exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters object whose fields live in an external manifest, the description should carry more weight. It compensates partially by pointing to describe_tool and the artifact page, but omits what the test computes and what shape the result takes, leaving a real gap for a compute tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 in the schema and gives no extra meaning for the chaining or policy_parameters fields beyond pointing to the manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 the downstream artifact (art-219-qm-apr-apor-spread), but never states what the QM points-and-fees test actually evaluates or what decision it returns. It is distinguishable from its hundreds of siblings only by name and the artifact link, not by any functional statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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' plus an explanation of compute modes. There is no indication of when this test applies (e.g. QM points-and-fees threshold scenario), what inputs are required, or how it relates to sibling tests like 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.
check_reg_e_remittance_disclosureReg E Remittance Disclosure Consistency CheckBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_reg_e_remittance_disclosure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds genuinely new behavioral context: inputs are processed transiently and not stored or logged, execution is deterministic, and the call exports an AP2 artifact carrying an execution_hash for chain provenance, plus the snapshot (not subscription) nature of the FV-status receipt. This is more than the annotations convey, though the wording is generic template text.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool name, but the bulk is reusable OpenChainGraph template text (compute binding, FV-status URL, describe_tool pointer) rather than tool-specific information. It is not bloated with filler, but several sentences do not earn their place for this particular tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (delegated to describe_tool), the description should clarify what the decision function evaluates and what the result conveys. It instead explains only the execution plumbing, leaving the actual Reg E check undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 in the schema) but adds nothing about policy_parameters beyond the schema's own '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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Reg E Remittance Disclosure Consistency Check' conveys a verb and resource, but the description body never explains what the check actually verifies about Reg E remittance disclosures — it is dominated by compute-infrastructure boilerplate. It also fails to distinguish this from the sibling compute_remittance_disclosure or other check_*_disclosure tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 compute_remittance_disclosure or the other disclosure-consistency checks. The only conditional text concerns compute mode selection, which is already documented in the schema, not when-to-use criteria.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_retail_installment_disclosures").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so safety behavior is covered. The description adds real behavioral context beyond annotations: the compute/auto vs. browser delegation logic, transient processing with no retention, the 'synthetic or anonymised inputs only' warning, and AP2 artifact export with execution_hash. These are genuinely useful and not restated from the schema. However, the shipping concern (that the description is mostly infrastructure boilerplate) limits this to a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a wall of infrastructure boilerplate (compute modes, storage policy, AP2 export, FV-status receipt hash, URL, sibling artifact IDs) with the actual tool purpose buried and unspecified. The FV-status receipt hash and OpenChainGraph URL are low-value for an agent deciding whether to call the tool. Front-loading is poor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 0 required params, no output schema, and rich annotations, the description does cover compute, storage, chaining, and artifact export. But it never states what TILA disclosure check is performed, what inputs policy_parameters expects, or what a pass/fail result means, which is the core of the tool's value. Adequate scaffolding, missing domain substance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the compute:auto/browser semantics (matching the schema) but adds nothing about policy_parameters field names, and explicitly punts to 'See the tool's manifest for field names.' Baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (Retail Installment Contract TILA disclosures) and the verb 'check' is implied by the name, but the description itself is a boilerplate OpenChainGraph compute-node preamble that never says what the check computes, what TILA rules are evaluated, or what decision is returned. Given the crowded sibling set with many 'check_*' tools, it fails to differentiate this tool from check_private_student_loan_disclosures, check_qm_points_and_fees, or check_reg_e_remittance_disclosure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no when-not-to-use, and no named alternative. Upstream artifacts are listed (art-332, art-324) which implies a chaining context, but the description never says to call this tool when preparing a retail installment contract disclosure check rather than, say, test_hoepa_high_cost or compute_reg_z_appendix_j_apr.
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 CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_safeguarding_reconciliation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/destructive:false), the description discloses genuinely relevant behavior: deterministic node execution, server-side vs browser delegation semantics, transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash. These are non-obvious traits the annotations don't convey, though the description stops short of stating failure modes or what the check returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is dominated by low-value boilerplate, a full spec URL, and a 64-character FV-status hash path that consumes significant space without helping an agent decide or call correctly. The domain purpose is compressed into the title while mechanical details are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage the parameters are covered, but there is no output schema, so the description should characterize the result beyond 'exports an AP2 artifact with execution_hash' — it gives no indication of what the reconciliation verdict looks like or what policy_parameters must contain, leaving the tool only minimally usable for a compliance-gated node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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) already carry descriptions. The description restates compute-mode behavior but adds nothing about chaining semantics or policy_parameters fields, deferring instead 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify a specific verb and domain resource (CASS 15 safeguarding reconciliation check), so an agent knows the general area. But the description itself is generic infrastructure boilerplate ('OpenChainGraph compute node', 'compute:"auto"') and never states what the check actually verifies about safeguarding reconciliation, nor distinguishes it from siblings like attest_daily_reconciliation or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs when-not guidance and no routing to any sibling. The only usable directive is 'Use synthetic or anonymised inputs only', which is an input constraint rather than usage context, and the compute-mode explanation is repeated from the schema rather than advising when each mode is appropriate.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_sb53_frontier_scope").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation safe (readOnly, idempotent, non-destructive), so the bar is lower. The description adds genuinely useful context: transient processing, no storage or logging, synthetic-inputs-only guidance, and the AP2 artifact / execution_hash export. These are non-obvious behavioral facts. However, it says nothing about error conditions, what a 'frontier scope' determination returns, or how the FV-status receipt relates to the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with infrastructure boilerplate (compute node, Cloudflare Workers, OpenChainGraph artifact, FV-status URL, output-schema instruction) while the actual subject — what SB 53 frontier scope means — is absent. It is not front-loaded on purpose; the first sentence restates the tool set rather than stating what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Against 4 parameters and a nested object with 0% description of the actual decision inputs, the description does not supply the missing substantive context. It never explains what inputs the frontier-scope decision consumes or what constitutes a passing scope. The compute/provenance plumbing is covered but the domain semantics are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 repeats the compute binding. Its only real addition is that policy_parameters field names live in the tool's manifest, but that's already implied. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify an SB 53 scope checker, but the description never states what SB 53 is, what 'frontier' means, or what the decision function actually determines. Its opening verb is boilerplate ('OpenChainGraph compute node (compliance_mandate)') rather than a statement of what the tool checks. An agent cannot tell from the description what compliance question this answers, only that it's a deterministic compute node.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling check_* compliance tools. The closest thing to guidance is the compute mode explanation, which is about execution plumbing, not tool selection. Nothing explains which inputs trigger a valid scope determination or 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_screening_list_coverageScreening List-Coverage CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_screening_list_coverage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, the compute:auto/browser delegation behavior, the gpu:true forced-delegation rule, and the AP2 artifact export with execution_hash. These are real operational traits an agent needs. It stops short of explaining failure modes or what the produced 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is repetitive ('OpenChainGraph compute node' stated twice) and provenance/URL/receipt details are stacked densely before the reader learns what the tool does. Much of the content is functional, but the front-loading prioritizes boilerplate over purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-parameter compute node with no output schema, the description supplies strong provenance and data-handling context but leaves the core decision semantics opaque — policy_parameters are unspecified and the actual computation is never described. It points to describe_tool and a manifest as fallbacks, which partly compensates but leaves an agent unable to invoke meaningfully without another call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description only restates the compute-mode semantics already in the schema and defers policy_parameters field names to an external 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.
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_mandate)' and lists upstream/downstream artifact IDs, but never states what the coverage check actually computes (e.g., what list coverage means, what it compares, what it returns). The title merely restates the name, so an agent cannot tell the tool's actual function 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives compute-mode guidance and a 'use synthetic or anonymised inputs only' warning, but never says when to reach for this tool versus siblings like run_sanctions_screening_fit or score_sanctions_screening_quality. No when-not or alternative-routing guidance is present.
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 CheckBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_securitization_risk_retention").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: server-side vs browser delegation semantics, transient processing with no storage or logging, and export of an AP2 artifact carrying execution_hash for provenance. This is useful behavioral detail for an agent deciding how to invoke it. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the name, but the body contains redundancies ('OpenChainGraph compute node' and 'Deterministic OpenChainGraph compute node' in consecutive sentences) and a long raw FV-status URL. The compute/privacy/artifact sentences earn their place; the receipt-verification prose is boilerplate that dilutes the signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a result communicates; instead it delegates entirely to describe_tool('check_securitization_risk_retention'). The execution/provenance mechanics are covered, but the decision semantics and result shape are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 without adding format or constraint detail, and the critical policy_parameters object is deferred to 'see the tool's manifest', leaving the actual decision inputs opaque. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first line identify a 'Securitization Risk Retention Check' compute node, so the domain is clear, but the description never says what the check actually evaluates (which retention rule, thresholds, or what constitutes pass/fail). It distinguishes itself from siblings only by name, not by any stated scope or comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 over the many sibling check_* compliance tools. The only usage-adjacent text is the compute-mode explanation and the 'use synthetic or anonymised inputs only' constraint, which address how to run it, not when it 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.
check_sod_matrixSegregation-of-Duties Matrix CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_sod_matrix").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior, but the description adds useful context: deterministic execution, transient processing with no storage/logging/retention, synthetic-input handling, AP2 artifact export with execution_hash, and browser delegation behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with infrastructure boilerplate, external URLs, a long FV-status hash, and repeated statements about deterministic compute. The core purpose is buried and many 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance-check tool with no output schema and an opaque policy_parameters object, the description does not explain the result shape or what a passing/failing SoD matrix check yields. It defers to describe_tool and the manifest, leaving too much unknown for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description mostly repeats compute binding wording and defers policy_parameters to the manifest, so it adds little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title and node type: "Segregation-of-Duties Matrix Checker: OpenChainGraph compute node (compliance_control)." It never explains what the SoD matrix check actually evaluates or what result it produces, so it is not distinguishable from the many other check_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 exclusions or prerequisite conditions. The compute-mode discussion is invocation mechanics, not selection guidance, and the synthetic-input note is a 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.
check_ssi_conformanceSSI Conformance CheckerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_ssi_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond that: transient processing with no storage/logging/retention, deterministic computation, the browser-delegation behavior for gpu:true nodes, and the AP2 artifact with execution_hash. These are meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is under-explained while the text spends length on infrastructure plumbing, a raw URL, a long FV-status file hash, and a describe_tool pointer. It is front-loaded with the node classification but carries noticeable noise 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a node with no output schema, the description covers the return artifact (AP2 export with execution_hash), upstream/downstream chain artifacts, and the output-schema pointer. Combined with rich annotations and 100% schema coverage, an agent has enough to call it correctly, though the SSI conformance semantics themselves remain unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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) and mentions chaining artifacts, but adds no syntax or format detail about policy_parameters beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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_mandate)' and a 'Deterministic OpenChainGraph compute node', but the actual meaning of 'SSI conformance' — what it checks, against which ruleset — is never stated beyond the title restated in the first sentence. An agent can infer it is a conformance evaluation node but cannot tell what conformance dimension it validates versus siblings like check_fido_pqc_conformance or check_gpai_code_conformance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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', compute mode semantics, upstream chaining from art-77) but never states when to pick this tool over an alternative or what makes an input a valid SSI conformance candidate. Usage is implied rather than routed.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_tokenized_collateral_eligibility").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive), the description adds substantive behaviour: determinism, transient processing with no storage/logging/retention, server-vs-browser compute modes with gpu:true always delegating, and an AP2 artifact export carrying execution_hash for chain provenance. These are real operational facts an agent needs. It does not contradict the annotations. Loses a point for not describing failure modes or what the eligibility 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It leads with the tool name but then buries the reader in infrastructure boilerplate, an external URL, and an opaque FV-status receipt line with a full SHA-256 hash that does nothing for tool selection. Several sentences ('a snapshot, not a subscription; this receipt verifies offline...') are irrelevant to invocation decisions. It is long without being front-loaded on the domain purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers the return format to describe_tool rather than summarising it. For a tool whose policy_parameters fields are explicitly unspecified ('See the tool's manifest'), the compute behaviour is thoroughly covered but the domain logic and expected result shape are not. Adequate as an infrastructure contract, incomplete as a description of what the eligibility decision produces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 verbatim. Its one addition is pointing to 'the tool's manifest for field names', which mirrors the schema's own note rather than adding new meaning. Baseline 3 is appropriate when the schema carries the parameter load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the tool name/title ('Tokenized Collateral Eligibility Checker'), then spends its budget on compute-infrastructure boilerplate rather than stating what eligibility is being checked or against which criteria. The only value-adding hint is the 'Output feeds' line naming downstream collateral tools, which gives domain context but never defines the actual decision function. An agent cannot tell what this checks versus sibling collateral tools like validate_fund_collateral or compute_stock_token_collateral_haircut.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 an input-hygiene rule, not a when-to-use signal. There is no guidance on when this tool should be chosen over the many sibling collateral/eligibility validators, and no prerequisites or exclusions are stated. The downstream 'Output feeds' list implies sequencing but does not tell the agent when to invoke it.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_webbotauth_nonce_replay").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 still adds real behavioral context beyond them: deterministic execution, transient (non-stored, non-logged) input handling, and the compute-mode delegation model (server kernel vs browser delegation URL) with an exported AP2 artifact carrying execution_hash. It does not explain what happens when a replay is detected, but the data-handling and execution semantics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The useful content is buried under boilerplate: an FV-status snapshot URL with a 64-character hash, an 'Open at' link, and repeated compute-mode explanation. The compute-mode text also duplicates the schema's own description verbatim. Not front-loaded or economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 leaves the critical invocation detail — which fields the decision function requires — unspecified ('See the tool's manifest for field names'). An agent cannot construct a correct call from the description plus schema alone, and there is no return-value or error behavior context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the baseline 3. The description adds nothing about parameter values and explicitly defers the decision-function fields to 'the tool's manifest', so it does not raise the bar above schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence merely restates the name/title ('Web Bot Auth Nonce & Replay-Window Checker') and then labels it an 'OpenChainGraph compute node (compliance_control)', which is infrastructure taxonomy rather than a statement of what the check actually does. It never says what a nonce/replay-window check verifies or how it differs from the close sibling verify_webbotauth_signature. 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.
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, and no alternatives are named despite verify_webbotauth_signature and check_x402_domain_nonce_window being obvious neighbors. 'Use synthetic or anonymised inputs only' is an input constraint, not usage guidance, and the 'Output feeds' line describes downstream consumption rather than selection criteria.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("check_x402_domain_nonce_window").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses meaningful behavior: deterministic node execution, server-side versus browser delegation, transient input handling with no storage/logging/retention, synthetic-input requirements, and AP2 artifact export with execution_hash. It also explains that the FV-status receipt is an offline snapshot. These details substantially expand what the readOnly/idempotent/non-destructive annotations already tell the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and front-loads platform boilerplate before any usable purpose statement. It mixes compute mechanics, privacy claims, artifact provenance, an external URL, and FV-status receipt language in one block. Much of this does 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.
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 and no output schema, the description omits what the domain/nonce-window check returns or how to interpret the result. It defers to describe_tool for the output schema but does not otherwise explain the decision function's expected inputs or outputs. The core semantic contract is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 repeats compute-mode behavior but adds no further meaning for parent_hashes, parent_tool_ids, or policy_parameters. This is the baseline case where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name and title as 'x402 Domain & Nonce Window Checker' plus platform identity, but never states what the check actually computes or what decision it makes. It does not distinguish this from sibling x402 tools such as validate_x402_deferred_handshake, verify_x402_signer_recovery, or simulate_x402_flow. This is largely a tautological restatement rather than a specific purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives detailed compute-mode behavior (auto, server, browser) and says to use synthetic or anonymised inputs, but offers no guidance on when to use this tool versus alternatives. The compute guidance is parameter semantics, not tool-selection guidance. There are no exclusions or conditions for choosing this checker over other x402-related tools.
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 ChooserCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("choose_cc_license").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, synthetic inputs are required, compute:'browser' yields a delegation URL, and an AP2 artifact with execution_hash is exported for chain provenance. It also notes the FV-status receipt is an offline-verifiable snapshot. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is verbose and repetitive ('OpenChainGraph compute node' appears twice back to back), and it front-loads infrastructure jargon ahead of any statement of what the tool decides. Large portions (FV-status hash, offline receipt, hosting URL) are boilerplate that crowd out task-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a decision tool that selects a CC license from policy_parameters, the description omits the core: which licenses it can choose among, what criteria drive the choice, and what the result contains (no output schema exists; it merely redirects to describe_tool). Infrastructure and provenance coverage is thorough, but the functional contract is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 sentences largely echo the schema (auto/server/browser, gpu:true delegation) and add nothing about the shape or field names of policy_parameters beyond deferring 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what the tool actually does; the only purpose signal is the name/title, which the description restates verbatim as 'Creative Commons License Chooser'. Everything after that is infrastructure boilerplate about compute modes and provenance, not a specific verb+resource describing the license-selection function or how it differs from siblings like select_embedded_license or select_cbe_license.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, even though the sibling list contains several near-neighbors (select_cbe_license, select_embedded_license, assemble_license_terms, check_license_compatibility, certify_license_election). The only 'when' content is about compute mode selection, which is execution plumbing, not task routing.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_agentic_ai_risk").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 goes beyond them substantially: deterministic execution, server-vs-browser compute routing, transient non-retained processing, a 'synthetic or anonymised inputs only' constraint, and AP2 artifact export with execution_hash. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with infrastructure metadata (compute binding, Cloudflare Workers, URL, FV-status hash, artifact IDs) and only incidentally conveys what the tool does. Many sentences serve provenance/plumbing rather than tool selection, so the core purpose is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and an open-ended policy_parameters object, the description should explain what a valid input payload looks like and what classification comes back, but it defers both to a manifest and describe_tool. It is thorough about chaining and compute routing yet incomplete for actually invoking the classifier correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already documented; the baseline is 3. For policy_parameters, the description defers to 'the tool's manifest for field names' rather than adding meaning, so it does not compensate for the schema's opaque additionalProperties:{} payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names a verb and resource (risk/GPAI governance classifier), and the description identifies it as an OpenChainGraph model_governance compute node, but the body never states what categories of agentic-AI risk it actually classifies or what the classification output means. Siblings such as classify_ai_system_governance, run_ai_governance_fit, and check_gpai_code_conformance are not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative named. The only routing information is artifact plumbing ('Consumes upstream artifacts from art-64...'), which tells the agent where inputs come from but not when this classifier 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.
classify_ai_system_governanceAI System Governance ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_ai_system_governance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage, logging, or retention; a 'use synthetic or anonymised inputs only' warning; deterministic server-side computation on Workers; and export of an AP2 artifact with execution_hash. These are meaningful operational traits beyond the annotations, though return shape and failure behavior are 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text opens with a title restatement followed by a dense boilerplate block: compute-mode explanation (already in the schema), no-storage boilerplate, a raw URL, and a long FV-status hash receipt sentence. Much of this is infrastructure legalese that crowds out the substantive purpose, and the compute-mode content duplicates the schema description verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compute node with no output schema, the description covers chaining (parent hashes / upstream artifact) and provenance (execution_hash artifact) reasonably, and it explicitly defers the output contract to describe_tool. The gap is the decision semantics — what policy_parameters mean and what classification is produced — which neither the description nor the schema supplies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute enum explanation is essentially duplicated from the description). The description adds no field-level semantics 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the category ('OpenChainGraph compute node (compliance_mandate)') and repeats the title, but never states what the tool actually classifies — no verb explaining the governance decision, no criteria, no framework (EU AI Act, NIST, ISO 42001). An agent learns it is a compute node attached to a chain, not what classification it performs or how it differs from siblings like run_ai_governance_fit 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Consumes upstream artifacts from: art-172-ai-risk-impact-assessment-validator' implies a chain position (call this after that validator), which is genuine usage context. However, there is no explicit when-to-use/when-not statement, no guidance on choosing between server and browser compute beyond the schema, and no differentiation from the many sibling AI-governance tools.
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 ClassifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_annex3_decisioning_obligations").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint/idempotent/non-destructive, and the description adds real behavioral context beyond them: inputs are 'processed transiently... not stored, logged, or retained', it exports an AP2 artifact with execution_hash for provenance, and it details compute routing (server vs browser delegation, gpu:true behavior). This is meaningful disclosure for a compute node, though output content behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with low-value plumbing for tool selection, including a full 64-char fv-status hash and a URL, plus the sentence 'a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched', which is noise for choosing the tool. The genuine purpose is buried under infrastructure detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex compliance classifier with nested-object params and no output schema, the description covers compute modes, chain provenance, and upstream artifact consumption, but the core semantic (what obligations get classified and what the result looks like) is deferred to a describe_tool call. It is serviceable but incomplete on the dimension that matters most.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 3 applies. The description restates the compute-mode semantics (already in the schema) but punts on policy_parameters with 'See the tool's manifest for field names', adding no extra meaning for the nested object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 ('classify Annex III FS decisioning obligations'), so the domain is identifiable, but the description body never explains what the classification actually produces or means. It labels itself a 'compute node (compliance_mandate)' and consumes art-64-ai-act-highrisk-fit-diagnostic, yet gives no semantic description that distinguishes it from the many other classify_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is useful context: it consumes upstream artifacts from art-64-ai-act-highrisk-fit-diagnostic, so the agent learns an upstream dependency exists, and 'Use synthetic or anonymised inputs only' constrains input. However, there is no explicit when-to-use/when-not guidance and no routing to alternatives among the numerous classification tools.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_avax_permissioning_controls").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior beyond them: compute routing (auto/server/browser, gpu:true always delegates), transient non-stored processing, the synthetic-inputs-only constraint, and export of an AP2 artifact with execution_hash. Those are real operational traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is padded with a documentation URL, an FV-status hash URL and an explanation of it, and a describe_tool redirect, all of which consume space without helping selection or invocation. Signal-to-noise is poor for a tool whose core semantics are never stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description only says an AP2 artifact with execution_hash is exported and defers field discovery to describe_tool/manifest. For a 4-parameter tool with an open-ended policy_parameters object and no documented decision fields, the agent 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 without adding syntax or format detail, and says nothing extra about policy_parameters beyond deferring 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify this as a classifier for AVAX permissioning controls (a compliance_control compute node), which is a specific verb+resource. However, the description never explains what aspects of permissioning controls get classified, what decision framework is applied, or how it differs from the many sibling classify_* tools. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this tool versus alternatives such as classify_eudr_commodity_scope, check_sod_matrix, or the other permissioning/compliance tools. The compute-mode guidance is about execution mechanics, not about task selection, 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.
classify_blockchain_quantum_riskBlockchain / Stablecoin Quantum-Risk ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_blockchain_quantum_risk").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 useful behavior beyond that: compute-mode routing (auto/server/browser, gpu:true always delegates), transient input handling ('not stored, logged, or retained'), and an AP2 artifact export with execution_hash for provenance. This is substantive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the identifier and artifact routing, but contains internal redundancy ('OpenChainGraph compute node (model_governance)' immediately followed by 'Deterministic OpenChainGraph compute node') and a long FV-status receipt URL that could be compressed. Serviceable but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, no-output-schema tool the definition covers infrastructure, data handling, chaining, and provenance adequacy, but punts the actual decision semantics to describe_tool/manifest. The core classification behavior — inputs, criteria, result shape — is left undocumented in the description itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 chaining. The description restates compute mode semantics but adds no new syntax or meaning for policy_parameters (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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description's only statement of function is the title restated ('Blockchain / Stablecoin Quantum-Risk Classifier') plus the tautology 'Deterministic OpenChainGraph compute node.' It never says what a quantum-risk classification actually determines (criteria, output fields, what 'risk' means) and does nothing to distinguish it from the many classify_* siblings. An agent cannot tell what problem this tool solves 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only prescriptive guidance is 'Use synthetic or anonymised inputs only.' Upstream/downstream artifact IDs (art-85, cry-04) give pipeline context but not when-to-use-vs-alternative guidance. There is no statement of when to choose this over, say, run_pqc_timeline_fit or check_fido_pqc_conformance.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_bold_challenge_finality").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 stays consistent with them while adding genuinely useful context: deterministic execution, transient no-store/no-log processing, and emission of an AP2 artifact with execution_hash. However, much of the compute-mode text duplicates the input schema's enum description, and the safety profile is already covered 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense wall of provenance boilerplate — FV-status hash URL, AP2/ChainGraph jargon, receipt-verification caveats — that does not help an agent select or invoke the tool, and the functional purpose is buried or absent. Little is front-loaded usefully; the name is repeated and infrastructure leads.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 substitutes a pointer ("call describe_tool(...)") rather than explaining what the classification returns or how the decision function evaluates policy_parameters (a nested object). For a classifier tool with a free-form policy_parameters object, the description omits exactly the information the caller needs to supply valid inputs and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description adds no parameter-level meaning beyond the schema; it even points to "the tool's manifest" for field names, which the schema already does. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ("BoLD Challenge-Window Finality Classifier: OpenChainGraph compute node") and then describes infrastructure plumbing, never saying what classification it actually performs or what a BoLD challenge-window finality determination means. A cluster of siblings (classify_settlement_finality, classify_settlement_asset_finality, check_linea_l2_finality_window, classify_ledger_consensus_finality) is left undifferentiated, so an agent cannot tell which finality classifier to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only conditional guidance is "Use synthetic or anonymised inputs only," which is an input-hygiene rule rather than a when-to-use statement. There is no indication of when this classifier applies versus its finality-classifier siblings, nor what prerequisite inputs are needed beyond the downstream artifact reference.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_carf_reportable").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 execution, transient input processing with no storage or logging, GPU nodes always delegating to the browser, and an AP2 artifact carrying execution_hash for provenance. It stops short of describing the classification outcome itself, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a long block of framework boilerplate rather than tool-specific guidance, and the FV-status sentence ('a snapshot, not a subscription; this receipt verifies offline...') is tangential to invoking the tool. It is front-loaded with the name, but many sentences do not earn their place relative to the classification task.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 classifier returns (reportable/not-reportable, categories, rationale), but it only says an AP2 artifact is exported and points to describe_tool for the output schema. The decision semantics and the policy_parameters field set remain unexplained, leaving an agent unable to anticipate the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 leaves policy_parameters opaque ('See the tool's manifest for field names'), adding no new meaning. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title establish that this classifies CARF/DAC8-reportable users, but the description itself never states what the classification decides or on what basis. It is dominated by infrastructure boilerplate ('OpenChainGraph compute node (compliance_mandate)') and only hints at purpose via the downstream link 'Output feeds: art-505-dispose-carf-status-message'. An agent gets the gist 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance concerns execution mode ('compute:auto' default, 'browser' forces client-side) and an input constraint ('Use synthetic or anonymised inputs only'). Nothing says when to choose this classifier over related siblings such as classify_digital_asset_regulatory or the various readiness/fit tools. 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.
classify_codm_expense_significanceCODM Significant Expense ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_codm_expense_significance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses meaningful behavior: transient processing with no storage/logging/retention, deterministic execution, the AP2 artifact with execution_hash for chain provenance, and the gpu:true delegation rule. None of this contradicts the readOnlyHint/idempotentHint annotations, which already cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is duplicated ('OpenChainGraph compute node' stated twice) and the two long URLs plus the FV-status aside consume space without helping an agent invoke the tool. The compute-mode explanation is front-loaded reasonably, but the piece is boilerplate-heavy for the value delivered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters object, the description should carry the load of explaining what inputs the decision function expects and what the classification result means. Instead it defers to describe_tool for the output and to an unspecified 'manifest' for field names, leaving the core semantics undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 documented at the schema level, and the description largely restates the compute enum semantics. For the key business input, policy_parameters, it only says 'see the tool's manifest for field names', adding no real 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title imply a CODM/segment-reporting expense classifier, but the description itself never states what the tool classifies or on what criteria — it devotes nearly all its text to infrastructure mechanics (server vs browser compute, Workers, kernels). A reader learns it is an 'OpenChainGraph compute node (compliance_mandate)' but not what 'significant expense' means or what decision it renders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use versus sibling tools (e.g., test_asc280_reportable_segment, classify_* siblings) is given. The only guidance is operational: compute mode selection and 'use synthetic or anonymised inputs only'. That constraint is useful but does 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.
classify_digital_asset_regulatoryDigital Asset Regulatory ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_digital_asset_regulatory").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive). The description goes beyond them by disclosing transient input handling with no storage/logging/retention, deterministic server-side compute for gpu:false kernels, browser delegation semantics, and an AP2 artifact with execution_hash for provenance. These are real behavioral traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening line is buried under infrastructure boilerplate, a website URL, and a 64-hex FV-status receipt path that consume most of the text. The genuinely useful sentences (compute routing, no-retention) are present but not front-loaded, and roughly half the content does not help the agent invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter classifier with a nested policy_parameters object and no output schema, the description should at minimum say what the classification decides. It defers output shape to describe_tool (partially mitigating) and field names to an unspecified manifest, leaving the core decision semantics absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 already in the schema and only defers to 'the tool's manifest' for policy_parameters field names, adding no syntax or semantic detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name promises classification of digital assets against regulation, but the description never states what is being classified or against which regime. It offers only the node type ('compliance_mandate') and a downstream hint ('feeds 512-tokenized-security-lifecycle-validator'), which is boilerplate-plus-inference rather than a purpose statement. No differentiation from the many 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only conditional guidance is architectural (compute='auto' vs 'browser' routing), not about when to choose this tool over alternatives. No prerequisites, no sibling routing, no indication of which assets or jurisdictions belong here despite dozens of adjacent classify_* tools.
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 ClockCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_dora_ict_incident_and_clock_deadlines").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context beyond them: compute:'auto' vs 'browser' semantics, browser-delegation fallback for gpu:true, transient processing with no logging or retention, and an AP2 artifact with execution_hash for provenance. That is useful 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.
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, a spec URL, and a 64-character FV-status receipt hash that consumes space without helping selection or invocation. The sentences that matter (compute mode, transient processing) are buried among this filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a decision/computation tool with 4 parameters, a nested policy_parameters object of unknown fields, and no output schema, the description should at least sketch the classification logic and the resulting deadline outputs. Instead it leaves the actual decision function opaque and redirects to describe_tool, so a caller cannot judge fit from the definition itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 merely echoes the compute-mode enum semantics that are already in the schema. It explicitly defers the substantive inputs ('See the tool's manifest for field names') and points to describe_tool, adding no meaning beyond the structured fields. Baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title (DORA ICT Incident Classifier & Reporting Clock) and then spends its body on infrastructure boilerplate about compute nodes, kernels, and artifact provenance. It never states what the classification actually decides (incident severity class, reportability, which clock) or what the deadline computation produces, so an agent learns nothing about the function 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.
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 such as classify_dora_incident, compute_cyber_incident_notification_clock, build_dora_roi_register, run_dora_readiness_diagnostic, or simulate_ict_cascade. The only constraint offered ('Use synthetic or anonymised inputs only') 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.
classify_dora_incidentDORA Major-Incident Reporting Threshold ClassifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_dora_incident").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server-vs-browser compute routing, transient non-retention of inputs, the 'synthetic or anonymised inputs only' constraint, and the exported AP2 artifact with execution_hash. It still says nothing about failure modes or how the classification result is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is padded with infrastructure boilerplate: a long URL, a 64-hex-character FV-status receipt path, and repeated artifact-chain plumbing. Low-value strings like the hash receipt consume space without 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.
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 explain what comes back; it only notes an AP2 artifact with execution_hash, not the actual classification/threshold result an agent would consume. Annotations cover safety and params are fully in-schema, so it is adequate but leaves the core output shape unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parameters are already fully documented. The description merely restates the compute-mode semantics already in the schema, and punts on the opaque policy_parameters object with 'See the tool's manifest for field names', adding no parameter 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title and first sentence establish a specific verb+resource: classifying DORA major-incident reporting thresholds. However, the description body adds nothing about what the classification actually tests (RTS thresholds, criteria), and it never distinguishes this from the near-identical sibling classify_dora_ict_incident_and_clock_deadlines, so an agent must guess which to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the provenance chain: it 'Consumes upstream artifacts from: art-29-dora-readiness-diagnostic' and its 'Output feeds: pnr-01..., ptg-01...'. There is no explicit when-to-use statement, no prerequisites, and no exclusions versus the overlapping DORA classifier sibling.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_eccn_dual_use").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 is not obligated to restate that. It adds real behavioral context beyond the annotations: deterministic computation, server-vs-browser delegation semantics, transient processing with no storage/logging, and export of an AP2 artifact carrying execution_hash for provenance. These are non-obvious operational traits an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with infrastructure boilerplate (compute binding, Cloudflare Workers, FV-status receipt URL, an HTML link) rather than what the tool does. Multiple sentences are devoted to chain plumbing and offline-receipt trivia that do not help an agent decide or invoke. It is over-long for the amount of actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 disclose the return artifact (AP2 artifact with execution_hash) and the chain provenance, which is useful. However, for a classification tool the single most important input — policy_parameters, a nested object whose fields are undefined in both schema and description — is deferred to an external manifest, leaving the actual decision input opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 of 3 applies. The description only echoes the compute-mode semantics already in the schema and explicitly punts on policy_parameters ('See the tool's manifest for field names'), adding no meaning beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('ECCN / Dual-Use Classifier: OpenChainGraph compute node') and never explains what the classification actually does — which ECCN categories, what inputs drive the decision, or what the decision means. An agent learns it is a deterministic compute node in a chain, but the purpose rests entirely on the name. It does distinguish itself as the ECCN-specific node versus the sanctions/diligence siblings, 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.
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 against the many sibling classify_* tools (classify_nis2_entity, classify_dora_incident, etc.). The upstream/downstream artifact references imply a position in a workflow, but never state the conditions under which an agent should select this tool.
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 ClassifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_emir3_active_account_status").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, idempotent, closed-world semantics, so the bar is lower, yet the description adds real value: transient processing with no storage/logging/retention, a mandate to use synthetic or anonymised inputs, and an AP2 artifact export carrying execution_hash for chain provenance. These are behaviorally meaningful details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The 'what it is' and compute/privacy points are front-loaded, but the text is dense with duplicated compute-mode wording from the schema and a long FV-status path blob that costs space without helping an agent invoke the tool. Roughly half the sentences are non-essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description wisely points to describe_tool for the result shape and covers compute, privacy and provenance, but it omits the semantics of the classification itself (inputs expected in policy_parameters, output labels). Given a nested-object parameter and a compliance-decision purpose, this is adequate at best.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 field names beyond deferring to 'the tool's manifest', so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the name/title ('EMIR 3.0 Active Account Representativeness Classifier') and labels it a 'compute node (compliance_mandate)', which confirms the domain but never explains what the classification actually decides or what status values it returns. An agent knows the ESMA/EMIR 3.0 area it belongs to but not the concrete decision function, so it is vague at the level that matters for tool selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 EMIR siblings (e.g. classify_emir3_simm_approval_scope, run_emir_reporting_fit, validate_emir_trade_report). The only conditional instruction is about compute mode, 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_emir3_simm_approval_scopeEMIR 3 SIMM Approval-Scope ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_emir3_simm_approval_scope").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/non-destructive, the description still adds substantial behavioral context: deterministic execution, server-side compute by default on Workers, compute:'browser' returning a delegation URL, gpu:true always delegating, transient non-retained processing, and an AP2 artifact carrying execution_hash. It also references an FV-status receipt. That is real disclosure beyond structured fields, though much of it is family-wide 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sentences are dense and individually meaningful about compute binding and data handling, but the opening two clauses are pure name/title restatement and the FV-status URL is noise against the tool's actual purpose. It is not front-loaded on what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a classifier with no output schema and a nested policy_parameters object whose field names are deferred to 'the tool's manifest', the description should explain what decision is produced and what the policy inputs represent. Instead it covers only execution plumbing, leaving the core function and return shape unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mostly restates the compute-mode semantics that the schema itself explains. It adds only the implicit link that the exported execution_hash relates to parent_hashes chaining. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what the tool actually classifies. It opens by restating the name and title ('EMIR 3 SIMM Approval-Scope Classifier') and labels it a 'compute node (compliance_mandate)', then spends the rest on execution infrastructure. Nothing distinguishes it from siblings such as classify_emir3_active_account_status, and the meaning of 'approval scope' is left unstated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is the input-hygiene note 'Use synthetic or anonymised inputs only'. There is no statement of when this classifier applies, what triggers it, or how it differs from adjacent EMIR 3 classification tools, so an agent has no routing information.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_erc1967_proxy_slot").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior beyond them: transient server-side vs. browser delegation for compute modes, gpu:true always delegating, no storage/logging/retention, and an AP2 artifact export carrying execution_hash for provenance. That is genuine disclosure an agent could not infer from the annotations alone. It stops short of describing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence repeats the title, then the text devotes most of its length to platform boilerplate, an FV-status URL, and a 64-hex receipt path — none of which help select or invoke the tool. The one genuinely useful sentence (compute mode behavior) is buried, and the definition is back-loaded with an instruction to call describe_tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a classifier with no output schema and a nested, undocumented policy_parameters object, so the description should at least say what a classification result contains and how confidence/provenance is reported. Instead it delegates everything to describe_tool and an external manifest, leaving the agent unable to predict the response or supply correct inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 echoes the compute mode semantics. For the key policy_parameters object the description defers to "the tool's manifest for field names," a reference the agent cannot resolve, leaving the actual decision inputs opaque — a real gap but one the description does partially acknowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ("ERC-1967 Proxy Slot Classifier: OpenChainGraph compute node") without ever explaining what is being classified or against what criteria — e.g. which storage slot corresponds to implementation/admin/beacon. An agent learns only that it is a "compute node" in category compliance_control, which is scaffolding, not purpose. No differentiation from the hundreds of sibling tools (verify_erc165_interface_id, decode_eip7702_authorization_tuple, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Compute-mode selection is explained, but no condition is given for choosing this tool over related EVM-classification 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.
classify_eudr_commodity_scopeEUDR Commodity Scope ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_eudr_commodity_scope").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond them: transient processing with no storage/logging, compute mode semantics, and an AP2 artifact export with execution_hash for provenance. It still says nothing about classification confidence, inputs required, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is boilerplate ('Deterministic OpenChainGraph compute node') rather than the tool's purpose, and the body is padded with URLs, an FV-status hash path, and repeated compute-binding text. The genuinely informative parts are buried, and the most important information (what it classifies) is never stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and nested policy_parameters whose fields are only obtainable from an external manifest, the description should explain the decision output and required input fields. Instead it defers to describe_tool and a manifest, leaving the agent unable to know what to pass or what a result means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 from the schema and defers policy_parameters field names to 'the tool's manifest', adding no meaning beyond structured data — the baseline 3 for full coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the title ('EUDR Commodity Scope Classifier ... compute node') without ever saying what the classification actually decides (e.g., whether a commodity/plot falls in scope of EUDR). It hints at chain position via the consumed upstream artifact art-166, but a verb+resource statement of the tool's own function is absent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is an implicit sequencing cue ('Consumes upstream artifacts from: art-166-eudr-geolocation-plot-validator') but no explicit when-to-use, when-not-to-use, or differentiation from EUDR siblings such as run_eudr_readiness_fit, score_eudr_country_risk, or validate_eudr_geolocation.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_ifrs17_measurement_model").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context beyond them: deterministic server-side execution by default, browser delegation semantics for compute:'browser' and gpu:true nodes, transient non-retained input processing, and an exported AP2 artifact carrying execution_hash. It stops short of describing the returned classification shape, but the added execution and privacy traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long and padded with infrastructure boilerplate — FV-status receipt-hash prose, offline-verification caveats, and a raw URL — that is peripheral to invoking the tool. The one genuinely useful invocation fact (compute-mode behavior) is buried mid-paragraph instead of front-loaded, and several sentences could be cut without losing agent-relevant meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance-mandate classifier with a nested policy_parameters object and no output schema, the description omits the decisive information: what inputs drive the classification and what the result means. It does route the agent to describe_tool for the output schema and documents provenance/chaining and compute behavior, but the core domain semantics needed 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the chaining parameters or about which keys policy_parameters expects ('see the tool's manifest for field names' defers rather than explains). Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title identify a specific verb (classify) and resource (IFRS 17 measurement model), but the description body never explains what classification is produced — GMM vs VFA vs PAA, the criteria used, or the decision output. It is dominated by OpenChainGraph infrastructure boilerplate rather than stating the tool's purpose, and it does not differentiate itself from siblings like 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.
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 named alternative. The only usage constraint offered is 'Use synthetic or anonymised inputs only.' Compute-mode guidance addresses invocation mechanics, not problem-level usage, so an agent gets no help deciding when this classifier 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.
classify_ledger_consensus_finalityLedger Consensus Finality ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_ledger_consensus_finality").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description goes meaningfully beyond them: transient, non-logged input processing, deterministic server-side vs browser delegation semantics, and an AP2 artifact with execution_hash for chain provenance. That is genuine operational context. It still omits anything about the actual classification output or its failure modes, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded, but the lead sentence is pure title restatement and the body is heavy infrastructure boilerplate (Workers, kernel registration, FV-status receipt path) that consumes space without advancing tool selection. The AP2/provenance detail is earned; the marketing-style URL and receipt snapshot text is not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param tool with nested policy_parameters and no output schema, the description covers execution mode and provenance but leaves the decision function itself unexplained and points to describe_tool for the output shape. Adequate as a compute-node wrapper, thin as a classifier definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 without adding format or ordering detail beyond the schema, and explicitly defers policy_parameters field names to the manifest. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('Ledger Consensus Finality Classifier') and never says what is actually being classified or what a finality verdict consists of. With siblings like classify_settlement_finality, check_cash_leg_finality, and check_linea_l2_finality_window, the agent gets no basis for distinguishing this tool's domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance relative to alternatives. The compute-mode paragraph explains how execution is routed, not when this classifier should be selected over the many other 'classify_*' and 'check_*_finality' tools. The nearest thing to guidance is 'use synthetic or anonymised inputs only', which is an input constraint, 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.
classify_mla_charge_inclusionMLA Charge-Inclusion ClassifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_mla_charge_inclusion").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningfully: it discloses server-side vs browser compute semantics, transient processing and non-retention of inputs, an AP2 artifact export with execution_hash, and the offline-verifiable snapshot receipt. That is genuine behavioral context the annotations do not cover. It stops short of describing failure modes or timing/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the node identity and compute behavior, but repeated framing ('OpenChainGraph compute node' / 'Deterministic OpenChainGraph compute node'), a long absolute URL, and an opaque FV-status hash splay attention. Several sentences are infrastructure boilerplate rather than tool-selection content, diluting signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers compute delegation, privacy, and provenance export but omits the actual classification semantics and what the AP2 artifact contains. An agent can call it mechanically but cannot judge correctness of the compliance decision.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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, parent_hashes, parent_tool_ids, policy_parameters). The description adds a little on compute defaults but nothing on the chaining parameters or policy_parameters beyond what the schema states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the node as an 'OpenChainGraph compute node (compliance_mandate)' named MLA Charge-Inclusion Classifier, but never states in plain terms what it classifies or what an MLA charge-inclusion determination actually produces. The name implies a regulatory classification (Military Lending Act charge inclusion), yet the description is dominated by infrastructure boilerplate and does not name the input domain or output decision. It is identifiable but vague on purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is guidance on compute modes and a privacy/data-handling constraint ('use synthetic or anonymised inputs only'), but no statement of when to use this classifier versus siblings like compute_mla_mapr or assess_* readiness tools. No trigger conditions, 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.
classify_nis2_entityNIS2 Entity Scope Classifier (Essential / Important / Out-of-Scope)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_nis2_entity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, and the description still adds meaningful behavior: deterministic compute, server-vs-browser execution via the compute flag, transient processing with no storage/logging, and an exported AP2 artifact carrying execution_hash for provenance. The caution to use synthetic/anonymised inputs is a useful operational constraint not derivable from annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with deployment/vendor boilerplate (Cloudflare Workers, FV-status receipt URL, snapshot-not-a-subscription note) that crowds out the actual tool intent. It also repeats itself ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node'), and the genuinely useful scoping information is not front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers return values to describe_tool rather than explaining what a classification result contains. For a decision tool whose main input is a nested policy_parameters object whose fields are only said to be in 'the tool's manifest', the definition leaves the agent without the semantic detail needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 text and adds no new syntax or meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title states a specific verb+resource (classify NIS2 entity into Essential/Important/Out-of-Scope), but the description body merely restates the title and then pivots entirely to OpenChainGraph infrastructure boilerplate. It never explains what NIS2 scope classification actually decides, and with many NIS2 siblings (check_nis2_art21_measures, check_nis2_governance_readiness, score_nis2_incident_significance, score_nis2_supply_chain_diligence) it does nothing to differentiate itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 NIS2 siblings. The only contextual hint is 'Output feeds: art-142-nis2-art21-gap-checker', which implies a chain position but does not tell an agent when classification is the right first step.
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 ClassifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_qm_apr_apor_spread").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 useful non-schema context: transient processing with no storage/logging/retention, a synthetic-or-anonymised-inputs-only constraint, export of an AP2 artifact with execution_hash, and an offline-verifiable FV-status receipt. This is meaningful added 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the name but then spends most of its length on Cloudflare/kernel/compute-binding mechanics and a raw FV-status URL that an agent rarely needs for invocation. Several sentences are redundant with the schema, diluting the actual purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 returned AP2 artifact and execution_hash, and the schema covers all four parameters, so the core is covered. However, it leaves the actual decision function opaque ('See the tool's manifest for field names'), so an agent cannot tell what the classification evaluates or what the result means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already fully documented in the schema and the description merely echoes the compute-mode behavior. It adds nothing about policy_parameters field content beyond pointing at the manifest, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title frame it as a 'QM APR-APOR Spread Classifier' compute node, and the description names an upstream artifact (art-218-qm-points-and-fees), but most of the text is infrastructure boilerplate about compute modes and provenance rather than what the classification actually decides. It never states what an APR-APOR spread classification produces or how it differs from sibling tools like 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.
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 given. The compute:'auto' vs 'browser' explanation is execution-mechanics guidance, not tool-selection guidance, so an agent still has no signal for choosing this over its many classify_* siblings.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_rate_rec_5pct_threshold").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage/logging, AP2 artifact export with execution_hash, and browser-vs-server delegation semantics. However, it does not describe the classification output 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with provenance URLs, FV-status hashes, and repeated "OpenChainGraph compute node" phrasing while omitting the core purpose. Front-loaded content should be what the tool does, not the receipt hash of a spec snapshot.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers return values to describe_tool, while the decision function's input fields are punted to an external manifest. For a nested-object classification tool with 0 required params, the agent is left guessing what to supply and what comes back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 little parameter meaning and instead defers policy_parameters field names 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mostly restates the name/title ("Rate Reconciliation 5% Threshold Classifier: OpenChainGraph compute node") and never explains what a 5% rate-reconciliation threshold actually classifies or on what basis. An agent learns it is a deterministic compute node but nothing about the decision it renders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g. other classify_* reconciliation tools), only infrastructure guidance about compute modes. Nothing tells the agent which reconciliation scenarios this tool applies to or when to prefer it over alternatives.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_redline_round_changes").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond them: 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 for chain provenance. That is useful disclosure an agent could not derive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with infrastructure boilerplate, a raw FV-status hash URL, and a spec link, while the first sentence merely restates the title. The functional content is buried behind compute-routing details, and key operational information is pushed into a trailing 'call describe_tool(...)' instruction. Poorly front-loaded and padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 result shape. Instead it defers output structure entirely to describe_tool and gives no field-level information for policy_parameters. For a compliance-classification tool of this complexity, the description leaves an agent unable to anticipate inputs or outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's explanation of compute:'auto'/'server'/'browser' largely restates the schema's own wording. It adds no syntax, defaults, or format detail for policy_parameters beyond deferring to 'the tool's manifest'. Baseline 3 is appropriate since the schema carries the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 names the artifact it exports, but it never explains what a 'redline round change' is or what the classification actually decides. Siblings like redline_diff and redline_verify go unmentioned, so an agent cannot tell how this classifier differs from them. Purpose is implied by the name 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.
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, not guidance on when to select this tool. There is no statement of when to use it versus redline_diff, redline_verify, or the many other compliance_control tools. The compute-mode paragraph describes execution routing, not task selection.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_safeguarding_method").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 or logging, deterministic computation, server-vs-browser delegation rules, and an exported AP2 artifact carrying execution_hash for provenance. That is substantial disclosure beyond the structured fields, though it says nothing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
'OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.' is literal duplication, and the URL plus FV-status hash consume space without helping an agent decide or invoke. The substantive content (transient processing, compute modes) is buried mid-paragraph after the repetitive opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 partially compensates by pointing to describe_tool and an AP2 artifact, but the core classification inputs (policy_parameters fields) are delegated to an unspecified 'manifest'. For a nested-object classifier this leaves the agent without enough to invoke it correctly without an extra lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 re-explains the compute enum, which duplicates the schema, so the baseline 3 applies. It does not help with 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The only statement of purpose is the title restated ('CASS 15 Safeguarding Method Classifier') plus the generic phrase 'compute node (compliance_mandate)'. It never says what a safeguarding method classification yields or how it differs from siblings such as check_safeguarding_reconciliation or build_safeguarding_audit_evidence. This is effectively a tautology wrapped in execution boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives. The only conditional logic described (compute auto/server/browser) is about execution location, not about when an agent should select this tool over another compliance classifier.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_sco60_exposure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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), but the description adds genuinely useful behavior: compute runs server-side on Cloudflare Workers for gpu:false nodes with a registered kernel, compute:"browser" returns a delegation URL, inputs are transient and not stored or logged, and an AP2 artifact with execution_hash is exported. That goes well beyond the annotations, though it stops short of saying anything about failure modes or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is back-loaded with low-value infrastructure text (a spec URL, a raw FV-status hash, a note that the receipt verifies offline) while the actual purpose is never developed. Several sentences repeat what the schema already states about compute modes, so waste is high relative to informational gain.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter compliance classifier with a nested free-form object and no output schema, the description should at minimum say what a policy_parameters payload looks like and what the classification returns; instead it defers entirely to an unlinked manifest and to describe_tool. It also never explains SCO60 itself, leaving the agent unable to judge whether the tool applies to a given exposure question.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parent_hashes/parent_tool_ids ordering rule) are already documented in the schema; the description's compute-mode text largely duplicates it. It adds nothing about what the decision function's policy_parameters should contain, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title states a specific verb+resource (classify crypto-asset exposure under SCO60), but the description never explains what the classification actually decides, what qualifies, or how it differs from siblings like classify_digital_asset_regulatory, classify_blockchain_quantum_risk, or assess_traiga_exposure. Beyond restating the title it spends its budget on infrastructure boilerplate, so an agent learns the node type but not the decision semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 classifiers, nor on prerequisites or exclusions. The only usage-adjacent rule ('Use synthetic or anonymised inputs only') is an input-handling constraint, not tool-selection guidance, and the compute-mode paragraph merely restates a schema parameter.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_settlement_asset_finality").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored or logged, compute:"auto" runs server-side on Cloudflare Workers while compute:"browser" returns a delegation URL, and it exports an AP2 artifact carrying an execution_hash for provenance. That is meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by boilerplate that does not help invoke the tool: a speculative regulatory deadline sentence, a long fv-status snapshot disclaimer, and a "Open at: <url>" line. The genuinely useful information (transient processing, compute modes, artifact chaining) 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.
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 free-form nested policy_parameters object and no output schema, the description omits what fields the policy_parameters decision function expects, deferring to "See the tool's manifest." It correctly points to describe_tool for the output schema, and annotations cover safety, but the key input contract remains underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 already in the schema and adds nothing about the shape of policy_parameters or the ordering/pairing of parent hashes. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ("Settlement-Asset & Legal-Finality Classifier") and then pivots to registry infrastructure ("OpenChainGraph compute node (compliance_mandate)"), compute binding, and an fv-status hash. It never states the actual classification the tool performs, which assets it covers, or what legal-finality criteria it applies, and it does not distinguish itself from close siblings such as classify_settlement_finality or classify_digital_asset_regulatory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closest thing to usage guidance is "Use synthetic or anonymised inputs only" and a note to verify SFD/PFMI designations before 2026-Q3. There is no statement of when to select this classifier over a sibling, no prerequisites, and no exclusions; the upstream/downstream artifact lists imply a position in a chain but not an invocation cue.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_settlement_finality").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavioral context beyond that: server vs. browser delegation semantics, transient processing with no storage/logging/retention, deterministic execution, and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate (compute binding, Cloudflare Workers, browser delegation URLs, an FV-status hash path) rather than front-loading the tool's actual function, which is never stated. The URL and receipt-hash block consume space without helping an agent decide to call this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a classification tool whose real input is an undocumented nested policy_parameters object and which has no output schema, the description omits the one thing that matters — what decision is produced and on what inputs. Deferring the output schema to describe_tool() and the parameter fields to an unlinked manifest leaves the agent unable to reason about the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% across all 4 parameters, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description largely restates the compute enum and adds nothing about the nested policy_parameters fields, deferring them 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with 'Settlement Finality Classifier: OpenChainGraph compute node (compliance_mandate)' — a restatement of the title plus a tag, not a statement of what the classification decides. It never says what 'settlement finality' means here or how it differs from siblings like classify_settlement_asset_finality, classify_ledger_consensus_finality, check_cash_leg_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.
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 classifier versus the many adjacent finality/timing tools. The only actionable constraint is 'Use synthetic or anonymised inputs only', which is a data-handling rule rather than a when-to-use rule. The compute-mode guidance describes 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.
classify_t1_posttrade_timingT+1 Post-Trade Timing ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("classify_t1_posttrade_timing").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, compute modes route between server and browser delegation, and an AP2 artifact with execution_hash is exported. Nothing here 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The statement of what the tool does is buried behind a long boilerplate paragraph; URLs, an FV-status hash, and an execution_hash provenance paragraph dilute the front-loaded signal. It is verbose without being informative about the actual computation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a classifier with a nested, otherwise-undefined policy_parameters object and no output schema, the description should at least say what is being classified and what the result contains. Instead it punts to describe_tool() and a manifest, leaving the agent without the decision context needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 explicitly defers policy_parameters field names to 'the tool's manifest', adding no new parameter meaning beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 classifier actually decides; the only signal about purpose is the name/title ('T+1 Post-Trade Timing Classifier'), which the description merely restates as 'compliance_mandate' compute node boilerplate. It explains the compute infrastructure at length but not the classification task or its output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 plausible siblings such as classify_settlement_finality, classify_settlement_asset_finality, or run_t1_readiness_diagnostic. 'Use synthetic or anonymised inputs only' is an input 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.
classify_vida_platform_deemed_supplierViDA Platform Deemed Supplier ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value: compute-mode semantics, transient processing with no storage/logging/retention, the 'use synthetic or anonymised inputs' constraint, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and heavily front-loaded with graph/hosting metadata (Cloudflare Workers, gpu:false kernels, FV-status hash URL) while the substantive classification purpose is never stated. Some sentences genuinely earn their place (transient processing, artifact export, output routing), but the metadata bulk dilutes signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter classifier with a nested policy_parameters object and no output schema, the description omits the decision logic, the expected policy_parameters fields, and what classification result is returned. It partially compensates by naming the downstream router and the exported artifact, but an agent cannot determine what inputs produce which classification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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. For policy_parameters it defers to 'the tool's manifest for field names', adding no concrete semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title says 'ViDA Platform Deemed Supplier Classifier', giving a verb+resource, but the description body never explains what the classification actually evaluates (which criteria make a platform a deemed supplier under ViDA). It is largely OpenChainGraph infrastructure boilerplate rather than a statement of purpose 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.
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 sibling routing guidance is given. Siblings such as run_vida_readiness_diagnostic, assess_vida_drr_reporting_obligation, and route_vida_oss_registration are plausible alternatives, yet none are mentioned or contrasted.
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 CrosswalkARead-onlyIdempotentInspect
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). Output schema: call describe_tool("compare_agentic_payment_protocols").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds substantial beyond-annotation context: no state change, no keys held, nothing sent or registered, zero PII, zero network, and client-side execution. This gives an agent strong safety guarantees for autonomous invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and protocol list, and the safety, use-case, and execution sentences each add value. The final 'Output schema: call describe_tool(...)' meta-instruction is a minor structural oddity, but the overall text remains focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and the generic parameter surface, the description covers purpose, comparison dimensions, optional scenario recommendation, safety, and widget rendering, which is enough for an agent to decide and invoke the tool. Concrete input subfields and return format are not specified, but no parameters are required and the schema points to the manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter is the generic 'inputs' wrapper, and the schema already describes it with 100% coverage, so the baseline applies. The description adds only a scenario-recommendation hint and AIN Bridge prefill detail, without enumerating the actual input element IDs referenced by the manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: comparing agentic payment protocols (AP2, ACP, x402, Visa TAP, Mastercard Agent Pay) across defined dimensions. This clearly distinguishes it from siblings like compare_agentic_rail_protocols and crosswalk_agent_payment_rail_trust without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool: when a developer or strategist needs to orient across fragmenting agentic-payments standards. It does not list when-not-to-use cases or alternative sibling names, so it stops short of full exclusion guidance.
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 ComparatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compare_agentic_rail_protocols").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it explains compute:'auto'/'browser' semantics, that gpu:true nodes always delegate, that inputs are processed transiently and never stored or logged, and that an AP2 artifact with execution_hash is exported for chain provenance. This is meaningful behavioral context for a compute node, though the artifact emission is arguably a side effect not reconciled with the readOnly hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a concatenation of infrastructure facts — compute binding, privacy statement, artifact export, sibling IDs, a URL, and an FV-status hash — with the tool's actual function never front-loaded. Substantial content (the long FV-status path and receipt disclaimer) 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Privacy, compute binding, chaining inputs, and provenance output are all covered, and with no output schema the burden of describing returns falls on the description (it partially does via execution_hash and the output-feed list). However, the core functional question — what is being compared and what the comparison yields — is absent, leaving a gap for a tool with nested policy_parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all four parameters fully documented, including the compute enum and the parent_hashes/parent_tool_ids ordering relationship. The description largely repeats the schema's compute-mode text and adds little new meaning about 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Agentic Payments Protocol Comparator: OpenChainGraph compute node') and then spends its words on compute-mode plumbing, privacy, and provenance rather than stating what the comparison actually does — which protocols, on which dimensions, producing what result. An agent learns it is 'a deterministic compute node with a decision function' but not what the comparison computes, so it cannot distinguish this from siblings like compare_agentic_payment_protocols or crosswalk_agent_payment_rail_trust.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing is given, despite several obvious sibling comparators. The only constraints offered are 'Use synthetic or anonymised inputs only' and the downstream artifact feeds, which describe outputs rather than selection criteria.
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 ComparatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compare_basel_2023_vs_2026").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the read-only/idempotent/non-destructive profile, but the description adds real behavioral context beyond them: deterministic execution, transient processing with no storage/logging/retention, the compute:'auto'/'browser' execution split, and the execution_hash provenance export. It omits return-format and error 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the opening is redundant ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and the URL plus long provenance hash are carried in-body rather than left to structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description points to describe_tool for it and covers execution mode, determinism, data handling, and artifact export. A reader has what they need to invoke it correctly, though the actual decision-function inputs (policy_parameters fields) remain delegated to the manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (largely duplicating the schema's own compute description) but adds nothing about parent_hashes/parent_tool_ids or the policy_parameters manifest lookup.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/description states a specific verb and resource ('Basel 2023-vs-2026 Capital-Delta Comparator', a compute node that exports an AP2 artifact). An agent can tell it is a comparison/compute tool, though it never explicitly distinguishes itself from near-siblings like compute_basel31_delta or compute_rwa_erba_2026.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The one real usage constraint is 'Use synthetic or anonymised inputs only', which is useful but does not say when to choose this tool over the other Basel/RWA compute siblings. Context is implied by the domain name rather than stated.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compare_corridor_cost").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: inputs are processed transiently and not stored or logged, execution is deterministic, an AP2 artifact with execution_hash is exported for provenance, and upstream artifacts are chained. It stops short of describing what the comparison computes or how parent_hashes/parent_tool_ids ordering is validated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is repetitive ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and pads the entry with a 64-character FV-status hash and a raw URL that consume space without helping an agent decide or invoke. Core operational facts are buried mid-paragraph after title restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter nested-object compute node with no output schema, coverage of compute modes, transient data handling and provenance chaining is reasonable, and the description points to describe_tool for the output shape. However, it never says what the decision function computes or which policy_parameters fields exist (deferred to an unlinked manifest), leaving the agent unable to predict the result of a call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parent_hashes/parent_tool_ids semantics are already documented in the schema. The description paraphrases the compute-mode behavior (largely duplicating the schema text) and hints at chain provenance but adds no syntax or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names a specific artifact ('Corridor Cost Comparator (World Bank RPW)'), but the body never states what it actually compares or returns — it leads with 'OpenChainGraph compute node (analytics_mandate)' and repeats infrastructure boilerplate. The only purpose signal beyond the title is the upstream artifacts it consumes (remittance disclosure, stablecoin corridor economics), which implies corridor-cost comparison but is left implicit. It does not distinguish itself from close siblings like check_g20_corridor_cost_gap or model_stablecoin_corridor_economics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute-mode selection ('compute:auto' vs 'browser') which is invocation mechanics, not when-to-use guidance. There is no indication of when this comparator should be chosen over sibling tools such as check_g20_corridor_cost_gap, compute_remittance_disclosure, or model_stablecoin_corridor_economics, 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.
compare_cross_ccp_pqd_fieldsCross-CCP PQD ComparatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compare_cross_ccp_pqd_fields").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish safety (readOnly, idempotent, non-destructive, closed-world), and the description adds real behavior beyond them: server-side vs browser delegation rules for gpu:false/gpu:true nodes, an explicit no-storage/no-logging data-handling guarantee, and that it exports an AP2 artifact carrying an execution_hash. That is substantive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded but padded with repeated boilerplate ('OpenChainGraph compute node' stated twice, then 'Deterministic OpenChainGraph compute node'), plus a long FV-status path and a self-referential describe_tool instruction. Several sentences restate rather than add, so conciseness is only adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose central question is 'what does a cross-CCP PQD comparison produce', the description never answers it — it describes infrastructure (compute routing, artifact export, provenance) rather than the analytical operation. With no output schema and a core purpose left implicit, an agent cannot reliably judge applicability despite full schema and annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 explanation duplicates the enum description rather than extending it, and defers policy_parameters field names to 'the manifest'. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the title ('Cross-CCP PQD Comparator') and labels the domain ('regulatory_reporting') without ever explaining what comparing cross-CCP PQD fields actually does or what inputs/outputs mean. An agent learns it is a 'deterministic compute node' but not the operation, and no sibling (e.g. recompute_ccp_default_waterfall, size_ccp_default_fund_cover2) is distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only actionable advice is an input constraint ('use synthetic or anonymised inputs only'); there is no when-to-use guidance, no alternatives, and no conditions that select this comparator over the many other CCP-related siblings. Compute-mode routing 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.
compare_model_outcome_analysisModel Outcome-Analysis ComparisonCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compare_model_outcome_analysis").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 useful behavior beyond that: default server-side vs forced client-side execution, browser delegation for gpu:true nodes, transient non-stored/non-logged processing, synthetic-input requirement, and AP2 artifact export with execution_hash. Nothing here contradicts the annotations. It stops short of describing the actual comparison semantics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode and artifact-chaining sentences are front-loaded and earn their place, but the trailing FV-status paragraph ('a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched') is extraneous to tool selection and invocation. The result is dense infrastructure prose where the functional purpose should be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description reasonably points to describe_tool for the return shape and names upstream/downstream artifacts, which helps chain placement. But it leaves the core decision function, the meaning of policy_parameters fields, and the exported artifact contents unexplained, deferring key information to an out-of-band manifest for a 4-param tool with a nested object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 repeats the schema's own enum description and adds no new syntax or semantics; for policy_parameters it defers to 'the tool's manifest for field names,' which is not a value-add over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what is actually being compared or computed; it defines the tool only as a 'compute node (compliance_control)' in the OpenChainGraph. The name/title carry the real meaning (model outcome-analysis comparison), and the artifact IDs (art-450 upstream, art-453 downstream) hint at the pipeline role without ever stating the tool's verb+resource purpose. An 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.
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 alternative, despite many plausible siblings (assess_model_validation_status, replicate_model_outputs, run_model_test_battery, compile_model_risk_lineage_pack). The compute-mode discussion explains how execution happens, not when this tool should be selected over another.
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 EngineCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compare_pension_lump_sum_annuity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context: default server-side execution with browser delegation semantics, transient non-retention of inputs, the synthetic-inputs-only constraint, and AP2 artifact export with execution_hash for provenance. Most of this is platform-level boilerplate shared across nodes, but it goes beyond what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a run-on of platform boilerplate, a URL, and a raw FV-status hash path that consume most of the body. It is not front-loaded with the decision's purpose, and 'OpenChainGraph compute node' is repeated redundantly in the first two sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the burden of explaining return values, yet it only says an AP2 artifact is exported and that describe_tool should be called. Combined with an undocumented policy_parameters object, an agent lacks the core input and output information needed to invoke this decision engine correctly; only provenance/chaining mechanics are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 are already documented and the description only echoes the chaining role. Critically, policy_parameters is an open object whose field names are deferred to an external manifest ('See the tool's manifest for field names'), leaving the actual decision inputs opaque — the description does not compensate for that black box.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name convey that this compares a pension lump-sum against an annuity, but the description body never states in plain terms what the decision function computes or returns — it opens with a boilerplate 'OpenChainGraph compute node (compliance_mandate)' label. An agent can infer the purpose from the name, but the description adds no distinguishing scope versus siblings like compute_annuity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives (e.g., compute_annuity, optimize_social_security_claim_age). The only contextual hint is 'Consumes upstream artifacts from: art-282-social-security-claiming-optimizer', which implies ordering but not invocation conditions or exclusions.
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 EconomicsCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compare_receivables_finance_economics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/destructive/openWorld, so the bar is lower, and the description adds real value: transient processing with no storage/logging/retention, deterministic execution, compute-mode fallback behavior, browser delegation, and an exported AP2 artifact carrying 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The body is dominated by repetitive infrastructure boilerplate ('OpenChainGraph compute node' stated twice) and a long FV-status/receipt sentence that is provenance housekeeping rather than task guidance. Very little of the text is front-loaded domain information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 computation returns, but it only mentions an AP2 artifact and execution_hash, not the economic outputs (e.g., cost/yield deltas across the three instruments). Data-handling and provenance are covered; the decision-function result is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 4 parameters, so baseline is 3. The description's compute explanation mirrors what the schema already says, and for the central policy_parameters object it only defers to 'the tool's manifest for field names', adding no semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (compare forfaiting/factoring/invoice-discounting economics), but the description body only restates the title and then pivots to generic OpenChainGraph infrastructure boilerplate. It never says what the comparison actually computes, and it does nothing to distinguish itself from siblings like model_arc_cpn_economics or model_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.
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 usage constraints are infrastructural (compute mode semantics) and a data-hygiene note ('use synthetic or anonymised inputs only'), neither of which helps an agent decide this tool over a sibling comparator.
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 ComparatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compare_rights_matrix").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real substance beyond that — server-side vs browser delegation semantics for compute modes, transient non-retention of inputs, and an AP2 artifact with execution_hash for provenance. This is genuinely useful operational context, though much of the surrounding text is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long but misallocated: an FV-status URL and a 64-hex receipt hash, offline-verification notes, and Cloudflare Workers detail crowd out the core purpose. Leading material is infrastructure metadata rather than what the tool compares.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-input comparator with no output schema, the description omits what is being compared, the shape or field names of policy_parameters (it points at an external manifest), and any notion of the comparison result beyond 'AP2 artifact' and a directive to call describe_tool. The essential calling context is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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's compute-mode prose merely restates the enum semantics and adds nothing for the opaque policy_parameters object, deferring to 'the tool's manifest'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with the title plus node classification ('OpenChainGraph compute node (compliance_mandate)') rather than stating what the comparison actually does — which rights, over which licenses, producing what kind of result. Nothing here distinguishes it from siblings such as check_license_compatibility, assemble_license_terms, choose_cc_license, or certify_license_election.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 comparator versus the many adjacent license tools. The only usage-shaped statement is a data-handling constraint ('Use synthetic or anonymised inputs only'), which is a caveat, not routing guidance.
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 PackARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds meaningful context beyond them: deterministic execution, transient input handling ('not stored, logged, or retained'), the browser delegation URL behavior for compute:browser and gpu:true nodes, and the provenance value of the exported execution_hash. This is a solid disclosure of behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is dense but front-loaded poorly: the first two sentences restate that it is an OpenChainGraph compute node, then jump into compute-mode mechanics, and trail off into a URL and an FV-status hash that consume space without helping tool selection. It is informative but not tightly organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers the essential calling context — compute modes, transitive input handling, and what artifact is exported. It is largely complete, with only the exact decision policy and output shape left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute modes that the schema already documents and does not add syntax or semantics for parent_hashes/parent_tool_ids ordering or policy_parameters fields beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Compile Model Risk Lineage Pack') and clarifies it is a deterministic OpenChainGraph compute node that exports an AP2 artifact with an execution_hash. It further scopes itself by naming the five upstream artifacts it consumes, which helps an agent distinguish it from other compile_* siblings, though the term 'Model Risk Lineage Pack' itself remains abstract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 a breakdown of when compute:auto/server/browser applies — but never states when to choose this pack over alternatives such as compile_nav_error_evidence_pack or compile_rebalance_evidence_pack. Usage is implied through the listed upstream artifacts rather than explicitly contrasted with siblings.
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 PackCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compile_rebalance_evidence_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only/idempotent/non-destructive profile, and the description adds genuinely useful behavior beyond that: deterministic execution, transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, and the fact that it exports an AP2 artifact carrying execution_hash. These are real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entry is bloated with non-agent-facing boilerplate: a restated title, a raw artifact URL, and an FV-status receipt path with a snapshot disclaimer. The useful constraints (transient processing, synthetic inputs, AP2 export) are buried among this filler, weakening front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex compute node with no output schema, the description defers the return shape to describe_tool() and the input field names to 'the tool's manifest', leaving the agent to make additional calls. It covers data-handling and provenance adequately but is not self-sufficient about inputs or outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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. It adds the gpu:true delegation note but that is also in the schema. 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.
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 labels it a 'compute node', so the general action is identifiable. However, the actual subject of the rebalance and what the pack contains are never defined, and it is not distinguished from close siblings like compile_nav_error_evidence_pack or compile_model_risk_lineage_pack. Purpose is present but thin relative to the boilerplate surrounding it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 its siblings or what preconditions must hold (e.g., required upstream artifacts). The compute-mode guidance is really parameter behavior, not usage selection. 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.
compile_work_mandateWork Mandate CompilerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compile_work_mandate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing transient processing ('not stored, logged, or retained'), the server-vs-browser delegation behavior, deterministic execution, and the exported AP2 artifact with execution_hash for provenance. With readOnly/idempotent hints already covering safety, this adds real operational context an agent would not otherwise have.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The identity is front-loaded, but the body is bloated with a full URL, a 64-character FV-status hash, an explanation of receipt-offline verification, and a 'call describe_tool(...)' pointer. These consume a large share of the description without helping the agent select or invoke the tool correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter, zero-required tool with a nested open-ended policy_parameters object and no output schema, the description covers execution modes and data handling but leaves the actual decision-function fields to an external manifest and the return shape to describe_tool. It is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 defers policy_parameters field names to 'the tool's manifest', adding no new parameter meaning. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (governance_mandate)' that 'exports an AP2 artifact with execution_hash', so the resource and category are clear. However, it never states plainly what a 'work mandate' is or what 'compile' produces, and given the many mandate siblings (ap2_aml_mandate_builder, build_google_ap2_mandate, draft_ap2_mandate_credential) it offers no differentiation among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mandate siblings. The compute-mode discussion ('auto'/'browser') is a mode selection, not a routing rule, and 'Use synthetic or anonymised inputs only' is a data constraint rather than usage guidance. An agent is left to infer 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.
compose_ap2_promptAP2 Prompt Template GeneratorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compose_ap2_prompt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful behavioral context beyond them: transient server-side processing with no storage/logging/retention, the warning to use synthetic inputs only, and provenance via execution_hash. This is real added value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with boilerplate: repeated "OpenChainGraph compute node" phrasing, a website URL, a full FV-status content hash, and an offline-verification disclaimer. These crowd out the core purpose and are not front-loaded efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 characterize return values; instead it defers to describe_tool("compose_ap2_prompt"), which is acceptable but leaves the actual output shape unstated beyond "AP2 artifact with execution_hash". Compute modes and chaining inputs are covered, making it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are fully documented in the schema itself. The description reiterates the compute-mode semantics but adds no syntax or format detail beyond what the schema already 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ("AP2 Prompt Template Generator", "prompt_template" compute node) and states it exports an AP2 artifact. It is distinguishable from siblings like draft_ap2_mandate_credential or build_ap2_cartmandate_hashchain, though the OpenChainGraph "compute node" framing is jargon-heavy and the core purpose is somewhat buried.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. "Output feeds: ALL" is the only routing hint and is too vague to guide selection among the many AP2/chaingraph siblings.
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 ComposerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compose_control_test_evidence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context: transient server-side vs browser delegation for compute modes, gpu:true nodes always delegating, no storage/logging/retention of inputs, and an AP2 artifact with execution_hash being emitted. This is genuine behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads a verbatim title repetition, then interspersed boilerplate: a marketing URL, an FV-status file path with a full SHA-256, and a 'call describe_tool' pointer. Several sentences earn little place relative to the actual invocation contract, and the substantive content is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 some burden, and it does disclose the emitted AP2 artifact, execution_hash, and the data-retention policy. However it punts output-shape discovery to describe_tool and leaves policy_parameters opaque, so an agent cannot fully call it correctly from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 behavior already in the schema and explicitly defers policy_parameters field names to 'the tool's manifest,' adding no semantics beyond structured data. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title ('Control-Test Evidence Composer') and then spends its text on infrastructure boilerplate (compute modes, Cloudflare Workers, FV-status). The only substantive purpose statement is 'Exports an AP2 artifact with execution_hash for chain provenance,' which describes output plumbing rather than what control-test evidence is composed or from what inputs. It never distinguishes itself from siblings like build_agent_test_evidence or lint_aiuc1_control_evidence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when-to-use guidance. No mention of when a caller should prefer this tool over the many sibling evidence/composer tools, nor any 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.
compose_eval_attestation_receiptEval Attestation Receipt ComposerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compose_eval_attestation_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 on top: server-vs-browser delegation semantics, that gpu:true nodes always delegate, that inputs are processed transiently and not stored or logged, and that the FV-status file is a snapshot verifiable offline. These are real behavioral traits not derivable from the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded but wastes space: it repeats the title verbatim then says 'Deterministic OpenChainGraph compute node' twice in adjacent sentences. The compute-mode and privacy sentences earn their place, but the URL and FV-status hash path are heavy and the opening is redundant. Mixed efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description at least addresses the return surface by redirecting to describe_tool and by naming the exported AP2 artifact and execution_hash. It covers input handling, compute routing, privacy, and provenance adequately; the main gap is that an agent still does not know the artifact's fields or what a 'governance_mandate' decision function computes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 behavior (auto/server/browser, gpu:true delegation) consistent with the schema but adds no new meaning for parent_hashes ordering or policy_parameters field naming. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource type ('OpenChainGraph compute node (governance_mandate)') and the output ('Exports an AP2 artifact with execution_hash for chain provenance'), so an agent knows roughly what it produces. But it never plainly states what an 'eval attestation receipt' is or what decision it encodes, and it does not distinguish this tool from nearby siblings like emit_chaingraph_artifact, export_artifact, or the many build_*_receipt tools. Purpose is inferable from the name plus the artifact clause, 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.
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; the only usage instruction is the constraint 'Use synthetic or anonymised inputs only.' The compute-mode paragraph explains how execution happens but not when an agent should pick this tool over the sibling receipt/artifact composers. Guidance is essentially absent.
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) ComposerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compose_globe_gir").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs only, deterministic execution, server-vs-browser delegation semantics including returning a delegation URL for gpu:true nodes, and production of an AP2 artifact carrying execution_hash. That is solid behavioural disclosure for a compute node, though it omits any statement about error or failure behaviour.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with templated implementation detail, repeats 'OpenChainGraph compute node' and 'deterministic' redundantly, and embeds a raw URL and a 64-character FV-status hash that an agent gains little from inline. The tool-specific content is buried after generic boilerplate rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description at least indicates the return is an AP2 artifact with execution_hash and points to describe_tool for the output schema. It covers privacy and compute delegation, but leaves the substance of the GIR composition and the meaning of policy_parameters unexplained, which is a real gap for a compliance artifact producer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 largely duplicates the schema's own enum description verbatim, and it adds nothing about parent_hashes/parent_tool_ids ordering beyond what the schema states. policy_parameters remains opaque ('See the tool's manifest for field names'), which the description defers rather than clarifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 that exports an AP2 artifact with an execution_hash, which is more than the name restates. But it never says what 'composing a GloBE Information Return' actually does, and it does nothing to distinguish this from siblings such as compute_globe_topup_tax, emit_chaingraph_artifact, or build_chaingraph. Much of the opening text is templated 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.
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 composer versus the many adjacent GloBE/chaingraph tools. The only conditional guidance given concerns the compute mode ('auto' vs 'browser'), which is parameter-level behaviour already documented in 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.
compose_workpaper_bundleWorkpaper Bundle ComposerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compose_workpaper_bundle").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond that: transient processing with no storage, logging, or retention; server-vs-browser execution routing; gpu:true nodes always delegating; and an exported artifact carrying execution_hash for provenance. The retention and routing disclosures are the kind of thing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with material that does not help tool selection: an HTML URL, a 64-hex FV-status file path, and a meta-explanation that the receipt 'is a snapshot, not a subscription.' This noise pushes the actual behavioural content into the middle of the field rather than front-loading it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 partly compensates by naming the exported artifact and pointing to describe_tool for the return shape. For a 4-parameter node with a nested policy_parameters object it should say more about what that object feeds, but the upstream-artifact chain and the delegation behaviour give an agent enough to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 pairing. The description restates the compute:
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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' that 'Exports an AP2 artifact with execution_hash for chain provenance' and names the three upstream artifacts it consumes (art-462/463/464). However, the actual operation — composing a workpaper bundle — is never described in terms of what the bundle contains or what the decision function does; the word 'compose' appears only in the name. The purpose is present but buried under chain-provenance boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is an input-safety directive ('Use synthetic or anonymised inputs only') and a compute-mode explanation, but nothing on when to choose this tool over the many sibling compose/export tools (assemble_ocg_evidence_bundle, build_ai_workpaper_record, emit_chaingraph_artifact). 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_15c3_3_reserve15c3-3 Customer Reserve Formula CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_15c3_3_reserve").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/non-destructive, and the description goes further by disclosing transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, browser-delegation behavior, and AP2 artifact export with execution_hash for provenance. This is meaningful beyond the structured hints, though it omits failure modes and any rate/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is stated up front, but the body is padded with boilerplate unrelated to invocation: a URL, an FV-status hash path, a legalistic 'snapshot not a subscription' disclaimer, and duplicate 'deterministic compute node' phrasing. Much of this does not help 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description defers to describe_tool and notes the downstream consumer (art-397-lint-trace-cat-reports) plus the AP2 artifact output, so the shape is partially covered. However, for a high-complexity tool whose policy_parameters field names live in an external manifest not reproduced here, an agent cannot fully construct a correct call from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 propertyName/additionalProperties semantics). The description adds no parameter syntax or examples beyond a passing reference to compute modes, so the baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name state a specific verb+resource: compute the SEC Rule 15c3-3 Customer Reserve Formula. The description frames it as a deterministic compute node named 'compliance_mandate', so an agent knows it is a calculator. It does not, however, distinguish itself from near-neighbours like compute_custody_segregation_ratio, precheck_reserve_attestation, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the compute-mode default ('auto' = server for gpu:false kernels) and that gpu:true always delegates, which is usable context, but it never says when to choose this tool over the many sibling reserve/safeguarding/compute tools. Usage is implied by the rule number rather than articulated.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_aca_affordability_safe_harbor").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses non-obvious behavior: server-side vs browser execution selection, that inputs are processed transiently and never stored/logged, that an AP2 artifact with execution_hash is exported for chain provenance, and that the FV-status receipt verifies offline. These are meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is dense boilerplate: a long execution_hash/FV-status string and a URL that do little for tool selection, mixed with genuinely useful compute-binding and retention facts. Some sentences clearly fail to earn their place for an agent choosing a tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex compute node with no output schema (deferred to describe_tool), the description covers chaining, compute modes, retention, and artifact export, so an agent can call it. However, it never states what the affordability computation produces, and policy_parameters field names are left entirely 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage the baseline is 3. The description paraphrases the compute-mode semantics already present in the schema and only gestures at policy_parameters by saying "See the tool's manifest for field names," so it adds no field-level meaning over the structured input schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with "ACA Affordability Safe-Harbor Calculator: OpenChainGraph compute node (compliance_mandate)" – this largely restates the title and labels the node class without explaining what the tool actually computes (e.g. which affordability safe harbor is tested or what inputs drive the decision). The link to the spec HTML and the "Output feeds: art-299-aca-esrp-exposure" note hint at scope, but the verb/resource are only conveyed by the name itself, and no sibling among the many compute_* tools is differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use synthetic or anonymised inputs only" and the compute-mode default are the only situational guidance. There is no explicit when-to-use/when-not-to-use and no routing to alternative tools, though the "Output feeds" chain relationship gives implicit context for where it sits in a workflow.
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 SimulatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 or logged, gpu:true nodes always delegate to the browser, and browser mode returns a delegation URL instead of a result. That is meaningful disclosure about side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavioral facts are front-loaded, but 'Deterministic OpenChainGraph compute node' repeats the opening clause, and the compute-mode prose duplicates the schema. The trailing FV-status URL and offline-receipt boilerplate is provenance material rather than tool-selection content, adding bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter compute node with nested input objects and no output schema, the description covers the important unknowns: execution location, data retention, and the fact that an AP2 artifact with execution_hash is exported. It is reasonably complete, though it never clarifies what the simulated schedule output contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (server vs auto vs browser, gpu delegation) rather than adding new information about 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.
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 analytics_mandate domain, but it never explains what an 'algorithm execution schedule' simulation actually computes or produces beyond the generic phrase 'this tool's decision function'. The name/title carry most of the semantic load, and no sibling 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an operational constraint ('Use synthetic or anonymised inputs only') and explains the compute-mode behavior, which implies when each mode applies. However, it offers no guidance on when to choose this simulator over the many sibling compute_* tools, leaving tool selection to inference 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_annuityAnnuity PV / FV / Payment SolverCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_annuity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, but the description adds genuinely useful context beyond them: inputs are processed transiently and not stored or logged, execution is deterministic, and an AP2 artifact with execution_hash is exported for chain provenance. The data-handling and provenance traits are the value-add here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The domain purpose is front-loaded, but the bulk is platform boilerplate: FV-status file paths, content hashes, offline-verification notes, and an external URL. Much of this is noise for tool selection and dilutes the two sentences that actually matter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a computation tool whose real inputs live in an opaque policy_parameters object with no output schema, the description explains nothing about required fields, units, rate conventions, or expected results. Pointing to an external manifest and a describe_tool call leaves the agent without enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already fully documented in the schema, and the description largely repeats the compute-mode rules. The critical policy_parameters object remains opaque in both places — the description only points at 'the tool's manifest' rather than compensating, so it lands at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first clause state a specific domain (annuity PV/FV/payment solving) and name it as an OpenChainGraph compute node. However, the operational purpose is buried under platform boilerplate, and it never distinguishes itself from nearby siblings like compute_npv, compute_irr, or compare_pension_lump_sum_annuity. An agent knows the topic but not precisely what decision function is computed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus alternatives, no prerequisites, and no exclusion conditions. The compute-mode discussion is about how execution is routed, not about when this tool is the right choice, so the agent gets no routing guidance.
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 RecomputeCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, and that an AP2 artifact with execution_hash is exported for provenance. Those are genuine behavioral facts not derivable from the annotations, though it omits anything about determinism failures 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The execution-mode and privacy facts are front-loaded, but the definition carries substantial boilerplate (compliance_control label, FV-status snapshot disclaimer, inline URL) that does not help an agent invoke the tool. It is longer than the actionable content warrants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compute node with full schema coverage and no output schema, the description does cover execution venue and data handling adequately. However, it never explains what policy_parameters must contain or what the APY-earned result represents, leaving the core computation opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully, including the compute enum and gpu:true delegation. The description's compute-mode explanation duplicates the schema rather than adding 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The text largely restates the name ('APY-Earned Recompute: OpenChainGraph compute node') and then describes generic runtime plumbing (server/browser execution, artifact export) shared by every compute_* sibling. It never states what the tool actually computes — the APY earned — so an agent cannot distinguish it from compute_interest_accrual_recompute or compute_gl_tieout_recompute 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.
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 the compute-mode selection rules. There is no guidance on when this recompute is the right choice vs. the many other recompute 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.
compute_asset_liability_coverageAsset/Liability CoverageCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_asset_liability_coverage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: transient processing, no storage/logging/retention, a synthetic-inputs-only constraint, and an AP2 artifact with execution_hash exported for chain provenance. It still omits failure modes and rate/limit behavior, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with a redundant restatement of the name/title, then piles on infrastructure boilerplate ('OpenChainGraph compute node' repeated), an FV-status URL, and a long parenthetical about snapshots versus subscriptions. Much of this is spec-bookkeeping rather than actionable tool information, and the actual purpose is buried behind it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 0-required-param compute tool with 100% schema coverage and no output schema, the description covers execution mode, data-handling guarantees, and the exported artifact. What is missing is the substantive part: what asset/liability coverage means, what policy_parameters fields drive it, and what the result represents — an agent must fall back to describe_tool to learn the function at all.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 its pointer to 'the tool's manifest for field names' mirrors the schema text, so it adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Asset/Liability Coverage') and labels it an 'OpenChainGraph compute node (compliance_control)', but never says what the computation actually produces — no verb beyond 'compute node' and no statement of the metric, inputs, or domain decision. An agent cannot distinguish it from the many sibling compute_* tools (e.g. compute_custody_segregation_ratio, compute_cfpb_1071_coverage) on the basis of this text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 conditional language concerns compute modes inside the node ('auto' vs 'browser' vs 'server'), which is invocation mechanics, not tool selection. Nothing tells the agent when this tool is the right choice over any sibling.
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 FixtureBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_authzen_conformance_fixture").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 bar is lower, and the description still adds meaningful behavior: default server-side compute on Cloudflare Workers for gpu:false nodes, browser delegation URL for compute:'browser' and gpu:true, deterministic execution, and explicit non-retention of inputs. It stops short of describing latency, limits, or error 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool's identity and compute behavior, but includes a long opaque FV-status hash and a full URL that consume space without helping an agent decide or invoke. Several clauses are dense jargon that could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers execution routing, data retention, and export provenance, and points to describe_tool for the output schema. It is nearly complete, though it leaves policy_parameters field semantics to an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description and adds no new parameter-level syntax or defaults beyond what is structured. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 family and states it exports an AP2 artifact with an execution_hash. However, it never says what an 'AuthZEN conformance fixture' actually is or what the computation produces, and it does not differentiate this compute node from the many sibling compute_* tools. 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.
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 routing against alternatives such as the other compute/conformance tools. The only constraint offered is 'Use synthetic or anonymised inputs only,' which is a data-handling instruction 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_basel31_deltaBasel 3.1 Reporting Delta CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behaviour: deterministic execution, auto/server/browser compute binding including gpu:true always delegating, transient processing with no storage/logging/retention, and an AP2 artifact export carrying execution_hash for chain provenance. The only deduction is that the compute-mode sentences duplicate the schema's own description of the `compute` parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The front matter (calculator name, domain, regulatory deadline, compute semantics, data-handling rule) is well ordered, but the tail — the ainumbers.co URL and the FV-status hash path with the 'snapshot, not a subscription...' disclaimer — is boilerplate that does not help an agent select or call the tool. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object tool with no output schema, the description supplies the deadline, execution modes, data-retention policy, artifact export and downstream linkage. What it omits is the substantive part: what inputs belong in policy_parameters and what the computed delta result contains, leaving an agent to guess at the core of the call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; baseline 3 applies. The description reinforces the provenance purpose of parent_hashes ('chaining'/'chain provenance') but says nothing about the contents of policy_parameters, which the schema defers to an external manifest — a gap the description does not close.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line largely restates the name/title ('Basel 3.1 Reporting Delta Calculator: OpenChainGraph compute node (capital_assessment)') and adds a domain and a go-live date, but never says what the 'delta' actually measures or against which baseline it is computed. Siblings such as compare_basel_2023_vs_2026, compute_rwa_scenarios and compute_basel_haircut_adjusted_exposure are in the same neighbourhood and get no differentiation. An agent knows the domain but not the exact computation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives useful positioning context — a 2027-01-01 UK PRA PS1/26 deadline, downstream consumers (sim-03-basel-rwa-scenario-modeler, ptg-01-ap2-prompt-template-generator), and a hard input constraint ('Use synthetic or anonymised inputs only'). That implies when the tool is relevant, but there is no statement of when NOT to use it and no routing to any alternative sibling. 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.
compute_basel_haircut_adjusted_exposureCollateral Haircut Engine (Basel CRE22)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_basel_haircut_adjusted_exposure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), it discloses genuinely useful behavior: deterministic execution, that gpu:true nodes always delegate to the browser, that inputs are processed transiently and not stored or logged, and that an AP2 artifact with execution_hash is exported for provenance. This adds real context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate and duplicated compute-mode prose, and it embeds a raw 64-character FV-status hash and a URL that do little for tool selection. The actual purpose appears only as the title, so the description is not front-loaded around what an agent needs to decide whether to call it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Operational calling details (compute modes, provenance export, no-retention guarantee) are covered, and return values are partly delegated to describe_tool, which offsets the missing output schema. However, for a nested-object compute tool with 0 required params and policy_parameters whose fields are deferred to an unprovided manifest, the domain semantics of the haircut calculation are absent, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 baseline of 3 applies. The description restates the compute-mode semantics already fully spelled out in the schema's own enum description and adds nothing about parent_hashes/parent_tool_ids or policy_parameters, even deferring field names to an unfetched manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first clause identify the domain (Basel CRE22 collateral haircut) and classify it as an OpenChainGraph regulatory_reporting compute node, but the description itself never states what the decision function computes or what inputs/outputs it produces. Nothing distinguishes it from close siblings such as compute_repo_haircut or compute_stock_token_collateral_haircut, which the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage direction is the constraint 'Use synthetic or anonymised inputs only' plus an explanation of the compute-mode enum. There is no statement of when to prefer this tool over the hair-cut siblings, no prerequisites, and no exclusions, so routing is left entirely to inference 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.
compute_best_execution_evidence_packBest-Execution Evidence PackBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful context beyond that: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL instead of executing, and the node is deterministic. This is real behavioral value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Content is front-loaded, but the opening is redundant ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') and the trailing FV-status URL with a long hash and offline-receipt note is heavy boilerplate relative to actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 returns; it names the AP2 artifact and execution_hash but not the artifact's structure or what policy_parameters produce. Compute-binding behavior is well covered, yet the domain computation and output shape remain under-specified for a 4-param node with nested objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 description and adds no syntax or format detail for the hash-chaining params. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 domain that exports an AP2 artifact with execution_hash for chain provenance, which gives some differentiation from siblings like build_evidence_pack or recompute_best_execution. However, it never states what decision function 'best-execution' actually computes, so the core purpose is largely a restatement of the name/title plus infrastructure detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives genuine operational guidance on compute modes (auto/server/browser, gpu:true always delegates) and mandates synthetic or anonymised inputs. But it offers no when-to-use versus siblings (e.g., recompute_best_execution, verify_execution_hash) and no exclusions, 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.
compute_bond_durationBond Macaulay / Modified DurationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_bond_duration").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/destructive/openWorld, so the bar is lower, and the description still adds real behavior: determinism, transient processing with no storage or logging, browser-delegation semantics when compute='browser', and issuance of an AP2 artifact carrying execution_hash. The FV-status receipt and 'snapshot, not a subscription' note further clarify provenance guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with boilerplate: 'OpenChainGraph compute node' is immediately restated as 'Deterministic OpenChainGraph compute node', and a full FV-status URL plus a hash dominates the tail. The actual analytical purpose is never front-loaded, so the useful signal is buried in infrastructure prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Execution behavior, provenance, and the delegation model are well covered, and no output schema means return values need not be explained. However, the crucial policy_parameters object is opaque and deflected to an external 'manifest' the agent cannot see, so the description is not sufficient to know what bond inputs (face, coupon, YTM, frequency, settlement) to supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already documents all four parameters, including the compute enum. The description's explanation of compute modes largely duplicates the schema's own text and adds nothing for parent_hashes/parent_tool_ids/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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (bond Macaulay/Modified duration) mainly by restating the title, then spends its length on OpenChainGraph infrastructure. It never distinguishes itself from close siblings like compute_convexity, compute_dv01, or compute_irr, so an agent can only tell what it does from 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is guidance for the compute parameter (auto/server/browser, gpu:true always delegates) and a data-hygiene rule ('use synthetic or anonymised inputs only'), but nothing about when to choose this tool over the many adjacent duration/risk analytics siblings, nor any stated prerequisites. The only when-to-use content is about execution location, 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_breakevenBreakeven / CVP AnalysisCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_breakeven").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe-read profile, and the description adds real behavioral context beyond them: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, and the call exports an AP2 artifact carrying an execution_hash for chain provenance. The FV-status receipt note is narrow but does disclose that this spec's trust receipt is a snapshot verifiable offline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a run-on that repeats 'OpenChainGraph compute node' twice, restates the compute-mode rules already in the schema, and pads with artifact URLs and an FV-status snapshot explanation of little relevance to invoking the tool. The actual purpose sits buried behind provenance boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 only pointer is 'call describe_tool("compute_breakeven")', so return values are at least addressable. However, for a decision-function tool whose required inputs live in an opaque policy_parameters object, the description defers entirely to 'the tool's manifest' and never indicates which cost/price/volume fields must be supplied, leaving the agent unable to construct a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 paragraph is nearly verbatim the schema's own description of the 'compute' enum, adding no meaning beyond it, and it says nothing about parent_hashes/parent_tool_ids or what fields the policy_parameters object expects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and the phrase 'OpenChainGraph compute node (analytics_mandate)' establish that this computes breakeven / CVP analysis, but the description body never states the actual operation (e.g. solving for breakeven volume/revenue from cost inputs). With hundreds of compute_* siblings, nothing here distinguishes it functionally from compute_irr, compute_npv, etc. Purpose is inferable from the title 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.
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 gives no guidance on when an agent should choose this tool over sibling analytics tools, nor any prerequisite conditions. The only usage-like instruction is '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_canton_app_reward_estimateCanton App-Reward Estimator (CIP-0104)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_canton_app_reward_estimate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, compute:'browser' returns a delegation URL instead of a result, gpu:true nodes always delegate, and an AP2 artifact with execution_hash is exported. These are real operational traits an agent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core facts (transient processing, browser delegation, artifact export) are front-loaded after the title, but the description is padded with an external URL, a long FV-status path, and a 'snapshot, not a subscription' disclaimer 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.
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 deflects return structure to describe_tool(); more importantly the only real payload parameter (policy_parameters) is left opaque with 'See the tool's manifest for field names', so an agent cannot know what to pass without another lookup. For a 4-param compute node with nested objects, this is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and parent_tool_ids; the description largely restates the compute-mode behavior rather than adding new meaning. 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.
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 (an estimator for Canton app rewards under CIP-0104), but the description never explains what the estimate actually computes or over what inputs; most of the text is compute-plumbing boilerplate. An agent can tell it is a Canton reward estimator, but not what distinguishes its output 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the compute modes (auto/server/browser) and warns 'use synthetic or anonymised inputs only', but gives no guidance on when to pick this estimator over any of the ~800 sibling tools, and no prerequisites or exclusions. Usage is implied by the name only.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_canton_traffic_cost").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/destructive annotations, the description discloses that execution is deterministic, that inputs are processed transiently and not stored/logged/retained, and that an AP2 artifact with execution_hash is exported for chain provenance. Those are meaningful behavioral facts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool identity and compute-mode rule, but the body is padded with template boilerplate: a long FV-status hash path, an HTML URL, and a self-referential 'call describe_tool' pointer. Several sentences are template furniture rather than tool-specific content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 points the agent to describe_tool for it, which is acceptable. However, for a compute tool whose core input (policy_parameters) has no documented fields, the description leaves the agent unable to construct a meaningful call, and the actual cost model being computed is never described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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/artifact framing (execution_hash provenance), and it explicitly defers policy_parameters field names to 'the tool's manifest', so it cannot compensate for that opaque free-form object. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name pair conveys the domain (Canton synchronizer traffic-cost computation), but the body never states what the tool actually computes or how it differs from close siblings such as compute_canton_app_reward_estimate or diagnose_canton_readiness. Most of the text is OpenChainGraph infrastructure boilerplate 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.
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, gpu:true always delegates) and says to use synthetic inputs only, but it gives no when-to-use-vs-alternatives guidance and never routes the agent to a sibling tool. Usage is implied by the domain name only.
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 AttributionBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_cdd_ownership_25pct").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine value beyond that: transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, browser delegation URL behavior, and the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with infrastructure boilerplate rather than the tool's purpose, and it is padded with a long FV-status hash and a meta-instruction ('call describe_tool(...)'), which consume space without helping invocation. The useful constraints are buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and an opaque policy_parameters object, the description covers execution locality, data retention, provenance export and the downstream consumer, which is enough to call it correctly. The remaining gap is that the actual decision logic of the node is never described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 gives no additional meaning for the chaining parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first clause name the domain (FinCEN CDD 25% beneficial ownership attribution) and classify it as an OpenChainGraph compute node, but the description never states what the computation actually derives (ownership percentages against the 25% threshold) or how it differs from sibling compute_* nodes. An agent knows the regulatory 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance concerns the compute mode ('auto' vs 'server' vs 'browser'), which is a parameter concern rather than tool selection. No when-to-use or when-not-to-use is given, and no sibling alternative (e.g. aggregate_ownership_50pct) is named despite an obvious adjacent tool.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_cfpb_1071_coverage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint, so the safety profile is covered. The description adds genuinely useful behavior beyond that: the compute:'auto'/'browser' delegation semantics, transient non-retention of inputs, and an AP2 artifact 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is dominated by repeated platform boilerplate, a URL and a long FV-status hash path that are irrelevant to tool selection. The actual purpose is compressed into the title, which is then echoed twice with no elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 coverage check determines and what a caller receives, but it delegates that to describe_tool and a manifest. An agent cannot tell what inputs produce what compliance determination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 behavior and defers policy_parameters field names to a manifest, adding little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names a specific domain (CFPB 1071 coverage / SBLAR record validation) and the description repeats it verbatim, but it never explains what the check actually evaluates or returns. The rest of the text is OpenChainGraph platform boilerplate that does not advance the agent's understanding of 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.
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 sibling compute/check tools. The only guidance is 'Use synthetic or anonymised inputs only,' which is a data-handling caveat, not a usage-routing rule.
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 InterestCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), yet the description adds genuinely useful behavior: transient processing with no storage/logging/retention, gpu:true always delegating to browser, and the AP2 artifact with execution_hash for provenance. It is consistent with the readOnly annotation rather than contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is duplicated ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'), and the trailing URL plus long FV-status hash path read as boilerplate rather than task-relevant guidance. Sizeable length with no explanation of the actual computation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a nested free-form policy_parameters object and no output schema, the description never says what the tool computes, what inputs it expects (0 required params is unexplained), or what the artifact contains beyond execution_hash. Provenance mechanics are covered but the domain content is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter is already documented, establishing a baseline of 3. The description adds nothing about the domain-critical policy_parameters object and explicitly defers to 'the tool's manifest' for field names, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause restates the tool title verbatim and the rest describes the platform's compute-node mechanics (server vs browser, AP2 export) rather than what consolidation-with-CTA-and-minority-interest actually computes. An agent cannot tell from this text what decision function runs or how it differs 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains how to pick a compute mode (auto/server/browser) but never says when this consolidation tool is appropriate versus an alternative, nor what inputs or prerequisites it needs. No when-to-use guidance relative to siblings is present.
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 TrackerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: states inputs are processed transiently and not stored/logged/retained, that it exports an AP2 artifact with execution_hash for provenance, and details browser-delegation semantics. This adds real operational context the annotations (readOnly/idempotent/non-destructive) 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Heavily bloated with platform boilerplate (URLs, FV-status receipt hashes, provenance marketing) that does not help tool selection, and the actual purpose is never front-loaded. Signal-to-noise is poor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested, undocumented policy_parameters object and no output schema, the description should explain what is computed and what the artifact contains. Instead it points to an external manifest and FV-status file, leaving the core semantics missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 meaning, and even defers policy_parameters field names to an external manifest, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what a consultation response tracker actually computes. It restates the name/title with platform boilerplate ('compute node (analytics_mandate)') and never gives a domain-specific verb+resource for the decision function. An agent cannot tell from this text 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute modes (auto/server/browser, gpu:true always delegates), which is genuinely useful runtime guidance, but offers no when-to-use-this-vs-siblings context across the large sibling set. No exclusions or alternative routing.
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 UpCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/false openWorld. The description adds genuinely useful behavior beyond them: transient processing with no storage, logging or retention, the browser-delegation URL semantics for gpu:true nodes, and the AP2 artifact with execution_hash for chain provenance. This is real added value on top 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens by repeating the name and title verbatim, then buries the useful bits (transience, artifact export) among infrastructure jargon, a raw URL, and an 80-character FV-status hash that a selecting agent cannot use. Poor front-loading and significant filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover the safety profile and the schema fully documents all four parameters including the nested policy_parameters object, so the remaining burden is the domain semantics. The description covers compute/transience/artifact export but leaves the core 'what does this roll-up compute' question unanswered for a nested-object, chaining-capable node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 description rather than extending it, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name/title and then pivots to infrastructure boilerplate about the compute node, kernels, and Workers. It never explains what a 'control attestation campaign roll-up' actually computes or what inputs/outputs mean in the compliance_control domain. Only the 'Exports an AP2 artifact with execution_hash' clause hints at output behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-relevant guidance is 'Use synthetic or anonymised inputs only' and the compute-mode mechanics. There is no statement of when to choose this roll-up over sibling attestation or aggregation tools, no preconditions, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_convexityBond ConvexityBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_convexity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnly/idempotent/non-destructive, the description adds genuinely useful behavior: transient, non-stored, non-logged input handling, the auto/server/browser compute modes, and the exported AP2 artifact carrying execution_hash for provenance. This goes meaningfully beyond what the annotations state, though return format remains delegated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dominated by infrastructure and provenance noise — a full FV-status URL and hash, offline-receipt caveats, kernel-registration detail — none of which helps an agent decide whether to call this tool. The core purpose gets only a few words before the boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, no-required, no-output-schema analytic node, the description covers execution modes, upstream chaining inputs, privacy handling, and artifact export, and correctly defers return shape to describe_tool. It is broadly complete even if the parameter payload contents are only pointed at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 says policy_parameters field names live in the manifest, which adds only a little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Bond Convexity: OpenChainGraph compute node (analytics_mandate)' names the resource but never states the actual action (computing a convexity measure) in plain terms, burying it under infrastructure boilerplate. It hints at relatedness to siblings via the upstream 'art-329-tvm-bond-duration' reference, but never explicitly distinguishes itself from compute_bond_duration 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.
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 compute-mode paragraph describes execution mechanics, not selection between this tool and the many sibling analytics functions. The only implicit routings are the upstream artifact reference and the pointer to describe_tool.
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 CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_counterparty_limit_check").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false already provided, the description adds substantial behavioral context: deterministic execution, server-vs-browser compute routing, transient processing with no storage/logging, synthetic-input requirement, and AP2 artifact export with execution_hash. This goes well beyond the annotations, though some of it is generic compute-node boilerplate rather than specific to this limit-check logic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long, repetitive boilerplate-heavy, and does not front-load the actual tool purpose. Much of the text covers shared OpenChainGraph infrastructure details, FV-status receipts, and URLs rather than helping an agent call this specific tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance-oriented compute node with four parameters, no output schema, and a nested policy_parameters object, the description does not explain what the counterparty limit check computes or what decision output to expect. It points to describe_tool for an output schema and to a manifest for field names, but leaves the core functional context missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the input schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description repeats compute-mode behavior but adds no meaningful semantics for the other parameters or for the decision-function fields inside policy_parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource as a 'Counterparty Internal Limit Check' and classifies it as an OpenChainGraph compute node, but it does not explain what the limit check actually evaluates or how it differs from sibling compute tools. It is more a taxonomy label than a functional purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_large_exposures_limit or other counterparty/limit-related compute nodes. The only conditional guidance concerns the compute mode parameter, not the tool's appropriate business context.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_cross_border_fees").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior: inputs are processed transiently and not stored/logged/retained, an AP2 artifact with execution_hash is exported for provenance, browser mode returns a delegation URL, and the FV-status is a snapshot verifying offline. These go 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body contains boilerplate ('OpenChainGraph compute node' stated twice in consecutive sentences), a raw 64-character FV-status hash, a URL, and a pointer to describe_tool. Several sentences do not earn their place, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the nested policy_parameters object has undefined fields, yet the description only redirects to the manifest/describe_tool rather than characterizing what the computation produces. The delegation and provenance behavior is well covered, but computational semantics and expected output are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline 3 applies. The description echoes the compute-mode semantics already in the schema and defers policy_parameters field names to 'the tool's manifest', adding no parameter detail over the schema. parent_hashes/parent_tool_ids chaining semantics are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title restated in the first clause ('Cross-Border B2B Fee Calculator') tells the agent this computes cross-border B2B fees, and the description identifies it as a deterministic OpenChainGraph compute node with an analytics_mandate. However, it never says what fees, from what inputs, or how it differs from the many other compute_* siblings. The 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real conditional guidance for the compute modes (auto/server/browser, gpu:true always delegates) and a concrete constraint ('Use synthetic or anonymised inputs only'). But there is no guidance on when to pick this tool over sibling calculators, nor any prerequisites beyond the privacy note.
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 RatioCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_custody_segregation_ratio").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful behavior beyond them: server-side vs browser execution semantics, that gpu:true nodes always delegate and return a browser delegation URL, transient non-stored processing, and an exported AP2 artifact carrying execution_hash for chain provenance. These are genuine operational traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on dominated by execution-infrastructure boilerplate, a raw URL, and a 64-character hash, with no separation between what the tool computes and how it is hosted. Almost none of the length is spent on the actual computation, so the informative 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.
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 mentioning the returned AP2 artifact and the possible browser delegation URL, and it points to describe_tool for the output shape. But for a four-parameter tool with a nested policy_parameters object, it still omits what the ratio returns and how policy_parameters drive it, leaving an agent under-informed about results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 behavior in prose but explicitly defers policy_parameters field names to 'the tool's manifest', adding no meaning the schema does not already carry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 family, and the name itself states the resource (custody segregation ratio). However, it never explains what the ratio measures, what it is computed over, or how it differs from the many other 'compute_*' compliance siblings — the body of the text is infrastructure metadata rather 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.
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 alternatives such as calculate_custody-style or other segregation/compliance compute nodes in the sibling list. The only conditional guidance ('use synthetic or anonymised inputs only') is a data-handling instruction, not usage routing. 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_cyber_incident_notification_clockCyber Incident Notification ClockCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_cyber_incident_notification_clock").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 gpu:true nodes always delegate, and that an AP2 artifact with execution_hash is exported for provenance. These are real behavioral traits an agent cannot read off the annotation block, though the text is generic infrastructure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The chunk about Cloudflare Workers compute binding, browser delegation, and data-handling policy is front-loaded ahead of any statement of purpose, and the purpose never arrives. The prose is dense with receipts, URLs and hashes that are not what an agent needs first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose real work is producing a notification-deadline computation from an opaque, nested policy_parameters object, the description leaves the agent unable to supply valid inputs ('See the tool's manifest for field names'). Deferring to describe_tool is a partial mitigation for output shape, but the definition itself is not self-sufficient for a correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 new about parameter meaning — notably policy_parameters, which is the tool's actual decision input, is 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence restates the tool name and tags it as an 'OpenChainGraph compute node (attestation_mandate)' — a category label, not a statement of what gets computed. It never says the tool derives cyber-incident notification deadlines or under which regimes, so an agent cannot tell it apart from siblings like classify_dora_ict_incident_and_clock_deadlines or compute_whistleblowing_channel_clock.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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) and warns to use synthetic inputs, but gives no guidance on when this tool is the right choice versus its many clock/deadline siblings. There is no when-to-use, when-not-to-use, or named alternative anywhere in the text.
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 WorkbenchCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses important behavior: transient processing with no storage/logging/retention, server-side versus browser delegation rules, gpu:true delegation, AP2 artifact export, and chain provenance via execution_hash. This is substantial operational context for a read-only 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long and contains redundancy, including two near-identical sentences about being an OpenChainGraph compute node. It also front-loads infrastructure details and includes an external tool URL and FV-status receipt that do not 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.
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 burden, and it partially covers output by mentioning the AP2 artifact with execution_hash. However, it omits the core semantic meaning of the computation and does not explain the shape of the returned artifact or the expected policy_parameters content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 mostly repeats the compute enum behavior and adds no field-level meaning beyond what the schema already provides; policy_parameters field names are still deferred to an external manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the tool name/title and identifies the internal compute node (derivatives_margin_health), but never states what the tool actually calculates or returns in business terms. An agent cannot tell from this text what a derivatives margin workbench does or how it differs from sibling tools such as compute_perp_margin or estimate_ficc_margin_netting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute modes and says to use synthetic or anonymised inputs, but gives no guidance on when this tool should be selected versus alternatives. There is no routing information for the many related margin and derivatives compute tools.
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 ScheduleCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_deterministic_amortization_schedule").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage/logging/retention, browser delegation semantics when compute='browser', 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with non-actionable boilerplate: a landing-page URL, a long FV-status receipt paragraph, and a self-referential describe_tool pointer in place of an output schema. The front-loaded title repeat and the trailing receipt paragraph crowd out the substantive content an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 partially compensates by naming the exported artifact and its execution_hash, but it leaves policy_parameters opaque ('see the tool's manifest') and gives no indication of what a schedule response contains. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 largely duplicates the compute enum's own description and adds no syntax or format detail beyond it; policy_parameters fields are deferred to an unspecified manifest, which is unhelpful but not misleading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title pair states the resource (an amortization schedule computed deterministically), but the description never says what the tool actually computes or returns beyond echoing the title. The bulk of the text is infrastructure boilerplate (compute modes, FV-status URL), and it does not distinguish this from close siblings such as build_amortization_schedule or recompute_lease_schedule_asc842_ifrs16.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 compute-mode explanation reads as parameter semantics rather than tool selection guidance, and the only directive present ('use synthetic or anonymised inputs only') is a constraint, 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.
compute_direct_indexing_fit_screenDirect Indexing Fit ScreenCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage or logging, server-vs-browser execution rules, browser delegation URL returns, and export of an AP2 artifact with execution_hash provenance. That is meaningful operational context the annotations do not carry. It does not cover failure modes or the artifact's contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core compute and privacy statements are front-loaded and dense, which suits a technical compute node. However the trailing URL and FV-status receipt sentence with a long hash is invocation noise that does 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.
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 carry more of the return-value burden; it only says an AP2 artifact with execution_hash is exported. It adequately covers compute binding, privacy, and provenance for a 4-param node with nested policy_parameters, but leaves the actual fit-screen semantics undefined.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, setting the baseline at 3. The description mentions execution_hash chaining and compute modes, which loosely maps to parent_hashes and compute, but adds no field-level detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 tagging it as an 'OpenChainGraph compute node (compliance_control)', but never states what the fit screen actually evaluates or decides. An agent cannot tell from this text what 'direct indexing fit' means or what question it answers, and there is no differentiation from the many sibling run_*_fit / compute_*_fit tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one genuine usage constraint ('Use synthetic or anonymised inputs only'), which is useful. However the compute-mode guidance duplicates the input schema, and there is no statement of when to choose this tool over alternatives such as run_agent_economy_fit or run_ai_governance_fit.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_discount_window_capacity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so safety is covered. The description adds genuinely non-structured behavioral facts: inputs are processed transiently and not stored/logged/retained, the node is deterministic, and it exports an AP2 artifact carrying an execution_hash for chain provenance. These are the kind of details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with infrastructure boilerplate (compute binding restated from the schema, a marketing URL, and a 64-character FV-status receipt path) that pushes the actual purpose into the background. The reader must wade through plumbing before learning anything about the calculation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It correctly points to describe_tool() for the missing output schema and discloses the provenance artifact, which is adequate framing for a compute node with full parameter coverage and annotations. It still omits any domain-level account of what the capacity result represents or what happens on failure, 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.
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 paragraph reproduces the schema's own enum documentation almost word-for-word and adds nothing about parent_hashes/parent_tool_ids ordering or what policy_parameters keys the kernel expects (it defers to 'the manifest'), so there is no net semantic gain over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line say this is a 'Discount Window Borrowing-Capacity Calculator', which is a specific verb+resource. However, the description never explains what the calculation actually does (inputs, methodology, decision function) and spends most of its length on generic OpenChainGraph compute plumbing rather than the purpose, so it does little to separate this node from the 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.
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 selection logic, which is already stated verbatim in the schema. There is no indication of when an agent should reach for this tool versus the hundreds of sibling calculators, nor any prerequisites or preconditions.
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 MetricsBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_disparity_metrics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 non-obvious behavior: inputs are processed transiently and not stored, logged, or retained; the node is deterministic; it exports an AP2 artifact carrying an execution_hash for chain provenance; and gpu:true nodes always delegate to the browser. The compute-mode sentence largely duplicates the schema's own enum description, which 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the privacy/determinism/artifact sentences earn their place, but the text is bloated with an HTML link, a full 64-character FV-status hash, and an explanatory clause about receipts that does 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter node with a nested policy_parameters object and no output schema, the description covers execution modes, privacy posture, provenance export, and the upstream artifact, and it routes the agent to describe_tool for the output shape. It still leaves the core question unanswered: which disparity metrics are produced and what the chaining parameters must contain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 restates the compute-mode semantics and gestures at chaining ('execution_hash for chain provenance') but adds no syntax or format detail for parent_hashes/parent_tool_ids and says nothing about how policy_parameters are populated beyond deferring to the manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 Disparate Impact Metrics) and classifies the node as an OpenChainGraph compliance_mandate compute node, so an agent knows it is a fair-lending-style metric computation. However, the opening sentence simply restates the title and never says what the metrics actually are, and it draws no boundary against the many sibling compute_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 directional hints are indirect: it names art-230-compute-hmda-rate-spread as the upstream artifact it consumes, and instructs 'Use synthetic or anonymised inputs only', which is an input constraint 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.
compute_dora_roi_gleif_preflight_packDora Roi Gleif Preflight PackBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_dora_roi_gleif_preflight_pack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful context beyond them: transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, server-vs-browser execution semantics, and the emitted AP2 artifact with execution_hash. That is meaningful behavioral disclosure, though it reads as shared template text 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads a name restatement and then a long run-on of boilerplate, URL, hash and FV-status text. Most clauses are templated and repeated across sibling compute nodes, and the useful scoping information (upstream artifacts) sits mid-paragraph. Not wasteful enough to be a 2, but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 delegates the output contract to describe_tool and the actual decision-input shape to 'the tool's manifest', leaving the primary result payload unspecified beyond 'AP2 artifact with execution_hash'. Data-handling and execution-mode context is present, so the gap is not severe, but for a nested-object compute node it is only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 (redundant with the schema) and says nothing new about parent_hashes/parent_tool_ids ordering or what policy_parameters fields exist ('See the tool's manifest'). Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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_control)' and names the upstream artifacts (dora-roi-builder, gleif-snapshot-digest, lei-relationship-consistency), from which an agent can infer this is a DORA ROI + GLEIF preflight check. But it never states in a verb+resource phrase what the node actually computes or returns, and no sibling is distinguished. Purpose is inferable 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.
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 the many adjacent readiness/preflight/diagnostic siblings, nor any stated prerequisite beyond chaining from named upstream artifacts. The compute-mode discussion describes parameter mechanics, not when-to-use selection criteria.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_dscr").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: compute:'auto' server-side vs 'browser' delegation semantics, gpu:true always delegating, transient non-retention of inputs, and an AP2 artifact with execution_hash for provenance. That is substantive disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the text repeats 'OpenChainGraph compute node' twice and packs in an FV-status file path plus a describe_tool pointer that interrupt the core message. Much of it earns its place, yet it is denser than needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry return-value explanation; it says an AP2 artifact with execution_hash is exported but never explains the actual DSCR/coverage outputs or the policy_parameters fields (deferred to 'the manifest'). Adequate for the compute-node genre but leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 logic but adds nothing about parameter formats beyond what the schema provides, making 3 the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening clause state a specific verb+resource: a DSCR & Interest Coverage Ratio calculator, tagged as a compliance_mandate compute node. It does not differentiate itself from siblings like compute_dti_ratios or other ratio calculators, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a hard constraint ('Use synthetic or anonymised inputs only') but no when-to-use/ when-not guidance and no routing to alternative tools. An agent gets a data-handling rule, not a selection rationale.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_dti_ratios").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: compute mode semantics (server-side vs browser delegation, gpu:true always delegating), transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash. That is meaningful operational context the annotations do not cover, though it never describes what the computed 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entry is long and padded with boilerplate that applies to every OpenChainGraph node: a repeated 'Deterministic OpenChainGraph compute node' clause, a documentation URL, and a long FV-status receipt disclaimer. The generic provenance/publishing text crowds out the tool-specific content an agent needs, so much of it does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description points the agent to describe_tool for the return shape, and it covers compute modes, provenance artifact, and privacy posture. However, for a node whose real payload is an undocumented nested policy_parameters object, the description leaves the actual decision-function inputs to an external manifest, which is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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:'auto'/'browser' restates the schema enum, and it explicitly defers policy_parameters field names to 'the tool's manifest' rather than adding meaning. Baseline 3 for high coverage with no added semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line identify the resource (DTI ratio calculator / compute node), but the description never states what a DTI ratio is, what inputs it consumes, or how the computation works. It spends its opening on platform taxonomy ('OpenChainGraph compute node (compliance_mandate)') rather than distinguishing the specific computation from sibling compute_ltv_ratios, compute_dscr, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 compute_* siblings. The only usage directive is the constraint 'Use synthetic or anonymised inputs only,' and 'Output feeds: art-222-agency-eligibility-matrix' implies downstream consumption but not when an agent should call this tool.
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)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_dv01").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive status, but the description adds genuinely non-obvious behavior: default server-side execution on Cloudflare Workers for gpu:false nodes, browser delegation override, gpu:true always delegating, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for chain provenance. That is substantial context beyond the annotation block. It stops short of describing failure modes or latency/cost characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical scoping statements are reasonably front-loaded, but the body is padded with infrastructure boilerplate, an inline URL, and a 64-character FV-status hash path that consumes attention without helping an agent decide or call correctly. Several sentences (receipt verifies offline, snapshot-not-subscription) are meta-commentary on provenance rather than operational guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no output schema, and a nested policy_parameters object, the description should at minimum tell the agent what input fields the decision function expects, but it defers to 'the tool's manifest' and 'call describe_tool("compute_dv01")'. It does cover execution routing and data-handling adequately, but the domain input contract is left unresolved for a tool whose whole payload lives in policy_parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented in the schema, and the description largely repeats the compute-mode semantics rather than extending them. It adds no field-level detail for policy_parameters beyond 'See the tool's manifest', which is not itself a usable semantic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with the title 'Bond DV01 (Price Value of a Basis Point)', which identifies the resource, but never states in plain terms what the tool computes or returns (e.g. 'computes the sensitivity of a bond's price to a 1bp yield change'). Instead it immediately pivots to OpenChainGraph compute-node infrastructure. The hint that it consumes upstream artifacts from art-329-tvm-bond-duration gives some domain anchoring, but siblings like compute_convexity and compute_bond_duration are not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 comparison against alternatives such as compute_bond_duration or compute_convexity. The only usage directive is 'Use synthetic or anonymised inputs only', which is a constraint rather than a selection rule. The compute-mode discussion is invocation mechanics, 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_eba_im_model_validation_trackerEBA IM-Model Validation TrackerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic execution, transient non-retained input handling, browser-delegation behavior for gpu:true nodes, and emission of an AP2 artifact with execution_hash. Nothing here contradicts the annotations. The gaps (no per-tool error or rate-limit behavior) are minor, and the disclosure is largely generic boilerplate shared across compute nodes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The critical identifier is front-loaded, and the passages on privacy and artifact export are relevant, but there is notable repetition ('Deterministic OpenChainGraph compute node' appears twice) and the FV-status sentence is dense boilerplate. Roughly half the length is infrastructure preamble that does not serve this specific tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterised compliance compute node with a schema that defers field names to an external manifest and no output schema, the description omits what matters most: what the validation tracker computes, what policy_parameters it expects, and what the result looks like. It is complete on transport mechanics but silent on substance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 duplicates the compute parameter's own schema description, and policy_parameters is left to 'the tool's manifest for field names,' so no additional parameter meaning is conveyed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title identify a specific resource (EBA IM-model validation tracker) and classify it as a compliance_mandate compute node, so the domain is recognizable. However, the body never states what the tool actually computes or returns — it opens with a tautological restatement ('EBA IM-Model Validation Tracker: OpenChainGraph compute node'). It gives no basis for distinguishing it from siblings like assess_model_validation_status, run_model_test_battery, or replicate_model_outputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description covers only the generic compute-mode mechanics (auto/server/browser), not when to choose this tool over alternative model-validation or evidence-pack tools. There is no 'use this when...' context, no prerequisites, and no named alternative. An agent gets no routing signal.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations establish readOnly/idempotent/non-destructive, but the description adds genuinely useful traits beyond them: inputs are processed transiently and not stored/logged/retained, synthetic inputs are required, an AP2 artifact with execution_hash is emitted, and gpu:true nodes always delegate to the browser. This is real behavioral context that 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with infrastructure boilerplate and a long FV-status receipt hash that no agent can act on, while the actual computation is never described. The front-loaded content is naming and provenance legalese, not the information needed to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested opaque policy_parameters and no output schema, the description omits the decision inputs entirely ('see the tool's manifest') and says nothing about the computed result beyond an execution_hash artifact. An agent cannot tell what to pass or what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter documentation is already complete and the baseline is 3. The description's compute-mode explanation merely duplicates the schema's own text, and it defers policy_parameters fields to an external manifest rather than adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the tool name and labels it a 'compliance_control' compute node, but never explains what an 'education funding gap' computation actually does, what it takes in, or what it returns. Beyond generic compute-infrastructure framing, an agent learns nothing that distinguishes it from the dozens of sibling compute_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives among the many sibling calculators. The compute-mode text is invocation mechanics carried by the schema, 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_escrow_analysisRESPA Aggregate Escrow AnalysisBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_escrow_analysis").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond that: transient processing with no storage/logging/retention, synthetic-inputs-only restriction, server-vs-browser execution semantics, and the AP2 artifact + execution_hash output. This is meaningful disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The name and compute node framing are front-loaded, and the data-handling and artifact-export sentences earn their place. However, the definition is bloated with a spec URL, a long FV-status hash path, and repeated platform phrasing ('OpenChainGraph compute node' stated twice) that dilutes the actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 compensates by describing the return (an AP2 artifact carrying execution_hash for chain provenance) plus the browser-delegation-URL behavior. Given 0 required parameters and full schema coverage, this is largely complete, though the upstream-artifact chaining workflow could be spelled out more concretely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 that the schema already provides and adds no syntax or format detail for the chaining 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('RESPA Aggregate Escrow Analysis' compute node) and notes it consumes an upstream artifact (art-235-test-hpml-escrow), which helps distinguish it from the many other escrow/compliance siblings. The purpose is clear, though the framing is dominated by platform boilerplate rather than a crisp statement of what is computed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains compute modes but never says when an agent should call this tool versus alternatives such as test_hpml_escrow or other escrow computations. There is no explicit when-to-use, prerequisite, or exclusion guidance beyond the implicit hint that upstream artifacts should exist first.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_esrp_exposure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value beyond that: transient processing with no storage/logging, synthetic-inputs-only guidance, AP2 artifact export with execution_hash for provenance, and an offline-verifiable FV receipt. These are meaningful operational disclosures. It loses a point only because the computational behavior of the decision function itself is left unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose reasonably, but the text is dense with boilerplate: 'OpenChainGraph compute node' is stated twice, and the FV-status sentence plus the raw URL and hash path are noisy for an agent deciding whether to call the tool. Compute-mode detail duplicates the schema description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 handles that by pointing to describe_tool. It covers data handling, provenance, compute modes, and chain routing well, but omits what the calculator derives from its inputs, which is the central completeness gap for a financial computation node with four parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids, and policy_parameters, yielding a baseline of 3. The description adds no parameter-level meaning beyond the schema and explicitly 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title ('ACA Employer Shared Responsibility Payment Exposure Calculator') and labels it as an 'OpenChainGraph compute node', without explaining what the exposure calculation actually consumes or produces. It does differentiate through the artifact chain (consumes art-298-aca-affordability-safe-harbor, feeds art-300-aca-226j-response-evidence-pack), which anchors it among siblings. But the core purpose beyond the title is thin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied via the provenance chain: this node sits downstream of compute_aca_affordability_safe_harbor and upstream of the 226j response pack. The compute-mode guidance (auto/server/browser) is operational. There is no explicit 'use this when... instead of...' routing versus siblings.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_experience_mod").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, but the description adds substantial non-obvious behavior: deterministic execution, transient processing with no storage/logging/retention, an exported AP2 artifact with execution_hash for provenance, and the server-vs-browser delegation rules. This goes well beyond the annotation set and helps an agent predict side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is boilerplate-heavy and not front-loaded on what the tool computes; the opening sentence is a title echo, and a raw documentation URL plus a long FV-status hash are embedded mid-description. The infrastructure paragraphs crowd out the single most important fact (the calculation's inputs), so length is not earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a calculator with a nested, free-form policy_parameters object and no output schema, the description omits the field names an agent must supply and instead points to an external manifest, while also outsourcing output shape to describe_tool. It covers execution mechanics and provenance thoroughly but leaves the actual computational contract incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 present in the schema and explicitly defers the policy_parameters field names to 'the tool's manifest', adding no semantics of its own; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line restates the title ('NCCI Experience Modification Calculator') and labels it an 'OpenChainGraph compute node (compliance_mandate)', but never says what an experience modification is or what the calculation produces. The resource is identifiable and distinguishable from generic compute siblings, yet the actual purpose is only inferable from the title, not explained 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.
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 tools; no alternative is named and no trigger condition is given. The only usage-adjacent content is the operational note to 'Use synthetic or anonymised inputs only' and the compute-mode explanation, which is execution mechanics 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_fdic_assessment_rateFDIC Deposit-Insurance Assessment Rate CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_fdic_assessment_rate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, synthetic inputs should be used, and the tool exports an AP2 artifact with execution_hash for provenance. It also explains the offline-verifiable FV-status receipt. This goes meaningfully beyond the annotations, though it says nothing about rate limits or computation constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
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 platform boilerplate, a raw URL, and a 64-character FV-status hash that consume space without helping an agent invoke the tool. Sizable but with a low signal-to-noise ratio.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a compute node whose real inputs live in the nested policy_parameters object, which the schema explicitly leaves undocumented ('See the tool's manifest for field names') and the description does not compensate for. With no output schema and no field names given anywhere, an agent cannot determine what to pass; the describe_tool pointer defers rather than completes the definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 merely restates the enum semantics already in the schema and adds no extra meaning; it is silent on the shape of policy_parameters. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name pair states a specific verb+resource (FDIC deposit-insurance assessment rate), but the description body only restates that it is an 'OpenChainGraph compute node (compliance_mandate)' without saying what the rate calculation actually is, what inputs drive it, or how it differs from siblings such as determine_deposit_insurance_coverage or calculate_* assessment tools. Purpose is inferable from the name but not developed 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.
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 sibling calculators (compute_rbc_action_level, compute_lcr_nsfr_leverage, etc.). The only conditional guidance is about compute mode (auto/server/browser), which is platform mechanics rather than domain 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)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_federal_withholding").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, yet the description adds real context: transient processing with no storage/logging/retention, server-vs-browser execution semantics, and emission of an AP2 artifact with execution_hash for provenance. These are meaningful behaviors 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the body is padded with repetitive self-description ('Deterministic OpenChainGraph compute node'), a documentation URL, and a massive FV-status hash that an agent cannot meaningfully use at call time. Much 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema tool with nested policy_parameters, the description covers execution modes, data-handling guarantees, chain provenance via parent hashes, and downstream consumption, and points to describe_tool for the output contract. Only the actual field names of policy_parameters are left to the manifest, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 chaining. The description reiterates compute-mode behavior and chain provenance but adds no syntax or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line state a specific verb+resource: computing federal withholding via the percentage method, and it is identified as a ChainGraph compute node. It is distinguishable from siblings like compute_gross_to_net, but the description spends most of its length on infrastructure boilerplate rather than sharpening 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute modes and that outputs feed art-339-compute-gross-to-net, but never says when to choose this tool over alternatives in the large compute_* family, nor any prerequisites for the percentage-method inputs. The only usage directive is 'use synthetic or anonymised inputs only', which is a constraint rather than guidance on selection.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_fha_mip_eligibility").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description adds real behavioral context: inputs are processed transiently and not stored or logged, compute:'auto' runs server-side on Workers while 'browser' returns a delegation URL, gpu nodes always delegate, and an AP2 artifact with execution_hash is exported for provenance. The 'synthetic or anonymised inputs only' constraint is also useful. This is substantially more than 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bulk of the text is infrastructure boilerplate (compute binding explanation, Cloudflare Workers, a URL, a long FV-status hash path, and a meta-instruction to call describe_tool) rather than the tool's own purpose. What the tool computes is buried and never actually stated, so the structure is not front-loaded with actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description adequately covers execution model, privacy posture and provenance artifact, but it omits the one thing an agent needs most: what the decision function takes and decides. The open-ended policy_parameters object is left entirely to an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters, which sets the baseline at 3. The description adds nothing about parameter semantics and in fact defers the actual decision inputs ('See the tool's manifest for field names'), so it does not compensate for the opaque policy_parameters object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with 'FHA MIP Eligibility Calculator' and labels it an OpenChainGraph compute node in the compliance_mandate domain, so the resource is identifiable, but it never explains what the eligibility decision actually evaluates (e.g. premium tier, LTV/term inputs) and does not differentiate it from the many other compliance compute siblings beyond the name. It largely 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.
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 mention of related siblings such as check_conforming_loan_limit or compute_llpa_stack. The compute-mode paragraph describes execution mechanics, not 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_flsa_regular_rateFLSA Regular Rate & Overtime CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_flsa_regular_rate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior: transient processing with no storage or logging, deterministic execution, server-side vs browser delegation semantics, and AP2 artifact export with execution_hash. These go beyond the annotation surface and inform trust and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with promotional/operational artifacts that do not help invocation: the ainumbers.co URL and a long FV-status sentence about snapshot vs subscription. The core meaning is diluted across boilerplate, and the actually important 'what it computes' is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter compliance compute tool with no output schema and an opaque nested policy_parameters object, the description should convey what result is produced. It instead defers to describe_tool for the output schema and never names the computed outputs. Directionally useful on privacy/chain provenance, but incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 semantics and adds only the browser delegation URL return detail; it does nothing to clarify the opaque policy_parameters object, which is the one field an agent would most need explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what the tool computes beyond restating the title; the body is generic OpenChainGraph platform boilerplate ('compute node', 'compliance_mandate'). An agent learns the domain only from the name/title, not from what verbs or calculations the tool performs (FLSA regular rate, overtime). This is close to a tautology plus infrastructure text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It says to use synthetic/anonymised inputs and explains compute-mode selection, but gives no guidance on when to pick this tool over the many sibling compute_* tools, nor prerequisites. The only real 'when' is the compute-mode choice, which is a parameter not a usage condition.
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 ScorerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_forecast_accuracy_score").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic execution, server-vs-browser compute routing for gpu:false/gpu:true nodes, transient non-stored inputs, and an exported AP2 artifact carrying execution_hash. This is meaningful disclosure, though some of it is generic boilerplate shared across compute nodes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on dominated by infrastructure boilerplate (Cloudflare Workers routing, FV-status snapshot disclaimers, a 64-char hash URL) that crowds out the tool's actual purpose. Identity and compute-mode routing are front-loaded, but a large fraction of the tokens 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.
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 a nested, free-form policy_parameters object and no output schema, the description should carry the domain burden but does not — it never explains what a forecast accuracy score measures or which policy fields to supply. It does route to describe_tool for the output schema and names the manifest for field names, which is the only completeness it offers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's mention of compute:"auto"/"browser" merely restates the schema and adds nothing about policy_parameters field semantics beyond pointing at "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.
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 (forecast_accuracy_score)" and repeats the title, but never states in its own words what the node computes or from what inputs — the actual purpose is only inferable from the name. With siblings like score_cash_forecast_accuracy, this near-tautological framing does not help an agent distinguish 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.
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, when to prefer a sibling such as score_cash_forecast_accuracy, or what domain conditions apply. Only a data-handling constraint ("Use synthetic or anonymised inputs only") is given, which is a rule, 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.
compute_fr2052a_inflow_outflow_classificationFR 2052a Inflow/Outflow Bucket ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_fr2052a_inflow_outflow_classification").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive profile, so this text earns credit for adding non-obvious behavior: default server-side execution on Workers for gpu:false nodes, browser delegation for gpu:true, transient processing with no storage/logging/retention, and AP2 artifact export with execution_hash for chain provenance. The data-retention disclosure is genuinely useful for a compliance-domain tool and is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loading is poor: the first sentence is a name restatement, followed by long stretches of boilerplate about compute binding, FV-status receipts, an HTML URL, and a 64-hex hash. The 'Output schema: call describe_tool(...)' pointer is useful, but a large fraction of the text is provenance infrastructure rather than tool selection information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-input compliance classifier with no output schema, the description omits the most important thing: what inputs the policy_parameters object expects and what the bucket output looks like. The describe_tool pointer partially mitigates this, but an agent still cannot 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.
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 with no parameter discussion. The description does sharpen the compute enum semantics slightly, but it explicitly defers the decisive input surface to 'the tool's manifest', leaving policy_parameters (the actual decision function input, a nested open object) unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name ('FR 2052a Inflow/Outflow Bucket Classifier: OpenChainGraph compute node') and then pivots to infrastructure boilerplate about compute modes and provenance artifacts. It never says what the classification does or what decision it renders (bucket assignment? inflow vs outflow determination?). An agent cannot tell this apart from the many other classify_* siblings on the basis of the text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is operational ('compute:"auto"' vs 'browser') and a data-hygiene warning to use synthetic inputs. There is no statement of when this classifier applies versus alternatives like classify_settlement_finality or classify_sco60_exposure, and no prerequisites such as which regulatory schema version or return form it targets.
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 RatiosBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_fund_expense_ratios").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage/logging/retention, browser delegation semantics for gpu:true nodes, and an AP2 artifact with execution_hash for provenance. That is solid 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the bulk is infra boilerplate: a raw documentation URL, a full 64-character FV-status hash, a snapshot/subscription aside, and a describe_tool pointer. Much of this does not help an agent select or invoke the tool and bloats the definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers compute routing, retention, and artifact output, which is meaningful for a graph compute node. But the actual decision inputs (policy_parameters) are opaque with no output schema, and the description offloads field discovery to an external manifest/describe_tool call rather than making the tool callable as described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already carries parameter meaning and the baseline is 3. The compute-mode text largely restates the schema enum, and policy_parameters is deferred ('See the tool's manifest for field names') rather than clarified, so it adds little.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause 'Compute Fund Expense Ratios: OpenChainGraph compute node' names a specific verb and resource, so an agent knows what it produces. However, it never distinguishes itself from close siblings such as recompute_fund_fees or recompute_fund_nav, leaving the boundary unclear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains when the compute modes apply ('auto' vs 'server' vs 'browser') and adds a real input constraint ('Use synthetic or anonymised inputs only'). It gives no guidance on when to pick this tool over fund-related siblings, so usage is only partly covered.
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 SequencerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, non-open-world. Beyond that, the description adds real operational context: transient processing with no storage/logging, deterministic execution, browser-delegation URL for compute:browser and gpu:true nodes, and an AP2 artifact carrying execution_hash for chain provenance. That is meaningful disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats itself ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') and the description then embeds a full URL and a 64-character raw hash, which is poorly suited to an agent-facing description. The useful scoping information (compute modes, transient processing) is buried in this noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with 100% schema coverage and no output schema, the description does cover execution modes, data handling, and the export artifact. However, it never says what the FX funding sequencing decision computes, and it defers policy_parameters field names to an external manifest ('See the tool's manifest'), leaving the agent unable to 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.
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 compute-mode semantics without adding format, ordering, or validation details beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 FX funding sequencing (compliance_control), but it never states what the decision function actually computes or returns. It distinguishes 'compute node' from other node types but gives no sibling differentiation against the many compute_* tools. Purpose is implied, not stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 inputs only, which reads as parameter semantics rather than invocation guidance. Nothing says when this tool should be used instead of any of the ~300 sibling compute/verify 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.
compute_fx_netting_positionsMultilateral FX Netting CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_fx_netting_positions").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, it discloses compute-mode behavior (auto vs server vs browser, gpu:true always delegating and returning a browser URL), transient non-retained processing, and that an AP2 artifact with execution_hash is exported for provenance. That is genuine added context; the compute-mode text largely duplicates the schema, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The body is boilerplate-heavy: FV-status URL, a 64-char hash path, and a self-referential 'call describe_tool(...)' pointer displace the functional statement, which never appears. Front-loading is poor — infrastructure and provenance precede any description of netting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description offloads return semantics to describe_tool, and the nested policy_parameters object is left to 'See the tool's manifest' with no field names. Compute-mode and provenance behavior are covered adequately, but the actual decision-function inputs and results remain opaque for a 4-parameter compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 only restates the compute-mode semantics and adds no format or example detail for policy_parameters or the hash/tool_id pairing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name give the resource (multilateral FX netting positions), but the description body never states what the tool actually computes — it opens with platform mechanics ('OpenChainGraph compute node (analytics_mandate)') rather than a function statement. No differentiation from close siblings such as compute_multilateral_netting or compute_intercompany_elimination_netting, which an agent must distinguish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is the data constraint 'Use synthetic or anonymised inputs only.' There is no when-to-use, no prerequisite chain setup guidance despite parent_hashes/parent_tool_ids existing, and no routing versus the netting siblings (compute_multilateral_netting, estimate_ficc_margin_netting).
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_globe_jurisdictional_etr").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 operational context beyond them: compute modes (auto/server/browser), the browser-delegation URL behavior for gpu:true nodes, transient non-retention of inputs, and export of an AP2 artifact with execution_hash. These are meaningful behavioral traits an agent would not learn 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The name and core compute-mode explanation are front-loaded, but the passage is padded with provenance/metadata (FV-status hash path, landing-page URL, 'snapshot, not a subscription' aside) and an output-schema pointer that adds length without helping invocation. Several sentences earn their place; several do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object compute node with no output schema, the description covers execution and provenance well but leaves the actual domain computation opaque: policy_parameters is deferred to an external manifest and no return-value guidance is given beyond 'call describe_tool'. Operational completeness is decent; domain completeness is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 notes that policy_parameters field names live in the tool manifest, which signals opacity rather than adding meaning. No new parameter-level detail is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'compute node (compliance_control)' for the GloBE Jurisdictional ETR, but never explains what an ETR computation actually produces or how it differs from siblings like compute_globe_sbie_topup or compute_globe_topup_tax. Beyond the verb 'compute' and the resource name (which merely restates the title), the prose 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states an input constraint ('Use synthetic or anonymised inputs only') and where inputs go (policy_parameters), but gives no when-to-use guidance, no prerequisites, and no routing relative to the many sibling GloBE tools. The negative constraint 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.
compute_globe_sbie_topupGloBE SBIE & Top-up Tax CalculatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_globe_sbie_topup").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, and the description adds genuinely useful traits beyond them: transient processing with no storage/logging, browser delegation semantics for gpu nodes, and emission of an AP2 artifact with execution_hash for provenance. It does not describe latency, size limits, or failure modes, but the safety/data-handling picture is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and compute semantics are front-loaded, which is good, but the opening is redundant ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') and the FV-status receipt paragraph is boilerplate that crowds out tool-specific content. Sentences are dense but several do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers the compute-mode contract, data-handling policy, provenance/artifact export, and upstream dependency, and points to describe_tool for the output shape. The only real gap is differentiation from the near-identical GloBE siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter (compute, parent_hashes, parent_tool_ids, policy_parameters) already carries its own description, so the schema does the heavy lifting. The description restates the compute mode default and the artifact chaining concept but adds no field-level detail beyond the schema, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (GloBE SBIE & top-up tax) and a compute action, and the upstream dependency on art-454-globe-jurisdictional-etr hints at where it sits in the GloBE pipeline. However it never distinguishes itself from the close sibling compute_globe_topup_tax, so an agent cannot tell the two apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides operational usage constraints (compute:"auto" vs "browser", gpu:true always delegates, synthetic/anonymised inputs only) and implies ordering via the consumed upstream artifact. It gives no explicit when-to-use-this-vs-alternative guidance against the several other GloBE tools (compute_globe_topup_tax, evaluate_globe_safe_harbour_tests, compute_globe_jurisdictional_etr).
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_globe_topup_tax").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage or logging, an exported AP2 artifact carrying execution_hash for chain provenance, and an offline-verifiable FV-status receipt. That is substantive behavioral disclosure on top of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by chain-infrastructure boilerplate (kernel registration, Worker execution, FV-status URL, describe_tool pointer) while the one thing an agent needs — what the top-up tax calculation computes and what inputs it takes — is never stated. Length is high and value density is low.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, a free-form nested policy_parameters object, and no output schema, the description should at least characterize the decision function and its expected fields. Instead it punts to a manifest and a describe_tool call, leaving the substantive contract of the computation undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 mostly restates the compute modes. For the only semantically opaque input, policy_parameters, it defers to 'the tool's manifest for field names' rather than adding meaning, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line names a specific GloBE resource (Top-Up Tax & QDMTT Allocation), which is more precise than a bare verb, but the description never states what the computation actually does. Against a sibling set containing compute_globe_sbie_topup, compute_globe_jurisdictional_etr, evaluate_globe_de_minimis_exclusion, and compose_globe_gir, no 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is about compute mode (server vs browser), which is infrastructure, not tool selection. There is no statement of when to reach for this tool over the neighbouring GloBE calculators, and no prerequisites or input expectations are given.
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 RecomputeCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds useful behavioral context: inputs are transient and not stored/logged, and an AP2 artifact with execution_hash is exported. It does not explain what the recomputation actually validates or its 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with repeated boilerplate (compute binding explained twice, transient-processing disclaimer, FV-status receipt URL and hash). The actual purpose of a GL tie-out recompute is buried and largely absent, so the structure is not front-loaded on meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 some return/behavioral context (AP2 artifact with execution_hash, ephemeral inputs). But it never explains what a GL tie-out recompute produces or reconciles, leaving the core semantics of the tool underspecified for a domain-specific compliance compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter (compute, parent_hashes, parent_tool_ids, policy_parameters) is documented in the schema itself. The description repeats the compute-mode semantics but adds nothing beyond the schema for the other parameters, including the opaque policy_parameters object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it's a 'GL Tie-Out Recompute' compute node for 'compliance_control', giving a verb+resource. However, the bulk of the text is generic OpenChainGraph boilerplate (compute binding, provenance, FV-status) rather than explaining what a GL tie-out recompute actually does or how it differs from siblings like rdarr_aggregation_recompute or compute_interest_accrual_recompute.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when server vs. browser compute is chosen, but that is about execution mechanics, not when an agent should use this tool versus alternatives. No tool-selection guidance is provided despite a large sibling set of similar 'recompute' and 'reconcile' tools.
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)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_gross_to_net").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses deterministic execution, the server-vs-browser delegation model (gpu:true always delegates), that inputs are processed transiently and not stored/logged, and that an AP2 artifact with execution_hash is exported for provenance. That is real behavioral context. It does not discuss rate limits or error modes, and much of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is bloated with infrastructure boilerplate: a raw FV-status URL and a 64-character hash, a docs link, and a pointer to describe_tool for the output schema. The genuine purpose and behavioral facts are buried under template text, and the leading clause merely restates the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter payroll compute with no output schema, the definition covers execution mode, input privacy, chaining, and provenance. It omits the two things an agent most needs: what the computation produces (result fields, artifact shape beyond execution_hash) and any calculation scope/assumption detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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) and hints that parent_hashes come from upstream artifacts, but it leaves policy_parameters opaque ('See the tool's manifest for field names') rather than adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause names a specific verb+resource ('Gross-to-Net Payroll Calculator (FICA)') and the description links it to its upstream sibling by naming the consumed artifact 'art-338-compute-federal-withholding', which helps separate it from other payroll computes. However, the substantive purpose lives almost entirely in the title; the body text never explains what is actually computed (which FICA components, jurisdiction, rounding).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives invocation constraints (synthetic/anonymised inputs only; supply upstream artifacts from art-338) and compute-mode selection guidance, but never states when to reach for this tool versus alternatives such as compute_federal_withholding or recompute_certified_payroll_pwa. Usage is implied through the dependency chain rather than stated.
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 SpreadARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_hmda_rate_spread").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior: server-side vs browser execution routing, transient non-stored/non-logged processing, determinism, and export of an AP2 artifact with execution_hash for chain provenance. It does not contradict the annotations, though it omits any latency or rate-limit expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and mode behavior are front-loaded, which is good, but the tail is loaded with a long FV-status hash, a raw URL, and a self-referential 'call describe_tool' instruction that reads as boilerplate rather than agent-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema the description appropriately points to describe_tool and to the chained output (art-229-compute-disparity-metrics), but for a 4-parameter tool whose nested policy_parameters object is entirely undocumented, an agent still cannot determine what to pass to get a rate spread.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and parent_tool_ids; the description mostly restates the compute-mode semantics. The opaque policy_parameters bag is deferred to 'the tool's manifest' with no field names, so the description adds little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Compute HMDA Rate Spread') and frames it as a deterministic OpenChainGraph compliance_mandate compute node, which helps place it among the many compute_* siblings. However, it never says what a rate spread is or what inputs drive the calculation, so the agent knows the operation's name but not its substance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is real usage guidance for the compute binding ('auto' default, 'browser' forces delegation, gpu:true always delegates) and a data-handling constraint ('Use synthetic or anonymised inputs only'), but nothing on when to pick this tool versus related compliance computations such as compute_disparity_metrics 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_identity_proofing_assurance_levelIdentity-Proofing Assurance Level EvaluatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_identity_proofing_assurance_level").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful behavior: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL rather than a result, gpu:true nodes always delegate, and the call exports an AP2 artifact with execution_hash. This exceeds the annotation payload and helps an agent predict side effects and return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a title restatement, then piled with infrastructure boilerplate and a long hex FV-status URL that carries no invocation value. Several sentences are generic across all OpenChainGraph compute nodes rather than specific to this tool, and the signal is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not explain what an assurance-level result looks like, and the policy_parameters fields are unresolved; the pointer to describe_tool(...) partially mitigates the missing return documentation. Compute modes and provenance are covered, but an agent still lacks the decision-function inputs needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 text largely duplicates the schema's own compute description, so it adds little. More importantly, policy_parameters (the actual decision inputs) is left as 'See the tool's manifest for field names' with no manifest available, leaving the substantive parameters opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence is essentially the title restated ('Identity-Proofing Assurance Level Evaluator: OpenChainGraph compute node') plus a category tag ('regulatory_reporting'). The resource is identifiable from the name, but the description never explains what the computation actually produces (e.g., an assurance/IAL determination) or how it differs from the many other 'assess_*'/'validate_*' siblings. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only real directive is 'Use synthetic or anonymised inputs only,' which is a safety constraint rather than selection guidance. There is no statement of when to choose this tool over the dozens of sibling readiness/assessment tools, nor any prerequisites tied to the decision function.
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 WeightsCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_index_weights").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 the useful non-retention guarantee, the browser-delegation behavior for gpu:true, and the AP2 artifact/execution_hash provenance, but doesn't clarify idempotency or caching semantics beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single run-on paragraph mixes purpose, compute routing, retention policy, provenance, an external URL, and an FV-status receipt into one dense block. The most important info (what index weights are computed and how to chain them) is buried in the middle, and the FV-status sentence is nearly indecipherable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 mention the AP2 artifact + execution_hash export and points to describe_tool for the output schema, which is helpful. However, it omits the shape of policy_parameters (deferred to 'the tool's manifest'), never says what an index-weights result looks like, and doesn't route against the index-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each of the four params (compute, parent_hashes, parent_tool_ids, policy_parameters) fully documented inline. The description reiterates compute-mode behavior (which the schema already covers) but adds nothing about policy_parameters shape or the chain linkage fields beyond what the schema says. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with 'Compute Index Weights' and adds OpenChainGraph 'compute node' detail, but the actual purpose of computing index weights is obscured by a wall of compute-mode and attestation boilerplate. The sibling-list contains many compute_* tools, and this description does little to distinguish what makes this index-weights tool distinct beyond its URL.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative. The description spends most of its text on compute-routing mechanics ('auto' vs 'browser') and provenance, but never tells the agent when this tool is the right choice versus publish_index_head, record_index_constituents, or record_index_correction.
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 WorkflowBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description discloses that execution is deterministic, that inputs are processed transiently and not stored or logged, that it exports an AP2 artifact with execution_hash, and how compute delegation (auto/server/browser, gpu:true) behaves. That is meaningful operational context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is reasonably front-loaded (purpose first), but a chunk of the text duplicates the compute-mode enum description from the schema, and the trailing URL plus full FV-status hash add bulk without helping an agent decide or call. Two sentences of the compute explanation could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 say it returns an AP2 artifact carrying execution_hash, which covers the return value at a high level. But the key payload (policy_parameters) is left to an unnamed external manifest, and there is no explanation of what the netting result contains, leaving a gap for a zero-required-parameter compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only adds the compute-mode recap already present in the schema and 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name identify the resource (intercompany elimination and netting) and the description classifies it as a deterministic OpenChainGraph compute node in the compliance_control family. However, the body never explains what the elimination/netting computation actually does, and with dozens of sibling compute_* tools there is no differentiation of when this particular netting applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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,' and the compute-mode discussion restates what the schema already says. There is no indication of when to select this tool over alternatives like compute_multilateral_netting or compute_fx_netting_positions.
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 RecomputeBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful context beyond the annotations: transient processing with no storage/logging/retention, synthetic-input-only guidance, the compute auto/server/browser delegation semantics, and the AP2 artifact with execution_hash for chain provenance. Annotations already cover read-only/idempotent/destructive hints, so this additional behavioral detail is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core operational information is front-loaded in a few dense sentences, but the trailing FV-status URL and receipt-verification sentence add length without helping an agent decide whether or how to call the tool, diluting an otherwise lean description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a 4-parameter nested-object tool with no output schema, the description covers compute mode, chaining, and provenance adequately, but never says what the decision function computes or what a caller should expect back. For a computation-only tool with no output schema, more explanation of the result and its meaning would be warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explains compute-mode semantics and chaining, but largely restates schema content rather than adding syntax or format details beyond it. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is an 'OpenChainGraph compute node (compliance_control)' for 'Interest Accrual Recompute', which identifies the verb and resource. However, it never explains what the computation actually does — what interest accrual logic is applied, on what inputs, or why one would recompute it — leaving the agent to 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.
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 provided, and no sibling tool is named as an alternative (e.g. vs allocate_ihb_interest or other accrual tools). Usage must be inferred 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.
compute_intraday_liquidity_monitoringBCBS 248 Intraday Liquidity Monitoring SnapshotCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_intraday_liquidity_monitoring").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavioral context (transient processing with no storage/logging, browser delegation returning a URL instead of a result, AP2 artifact with execution_hash). However, most of the compute-mode explanation duplicates the schema's own compute parameter description, and nothing is said about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text leads with a name restatement followed by infrastructure boilerplate (compute routing, FV-status URL, artifact export) rather than the tool's purpose. Roughly half the sentences describe shared ChainGraph mechanics rather than this tool, and the long FV-status URL consumes space without aiding invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It correctly points to describe_tool for the output schema and to the manifest for policy_parameters fields, which partially compensates for the missing output schema and opaque nested object. But the domain computation (what BCBS 248 metrics are produced, what policy_parameters must contain) remains unexplained, leaving a real gap for a 4-parameter nested-input tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 nothing about parent_hashes, parent_tool_ids, or what keys policy_parameters expects, deferring instead to the tool manifest and describe_tool. No syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 title ("BCBS 248 Intraday Liquidity Monitoring Snapshot: OpenChainGraph compute node (compliance_mandate)") and never states what the tool actually computes. An agent learns it is a compliance compute node but not what BCBS 248 intraday metrics it produces or how it differs from siblings like compute_lcr_nsfr_leverage 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.
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 compute-mode text explains how execution is routed, not under what circumstances an agent should call this tool rather than a sibling. Nothing routes the agent among the many liquidity/compliance compute tools.
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 ComputerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_ipfs_cid").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, a synthetic-inputs-only constraint, deterministic execution, and export of an AP2 artifact carrying an execution_hash. That is meaningful beyond the structured fields, though it never explains what a browser delegation URL requires of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats the title and then restates 'compute node' twice, and the FV-status sentence with its long hash and 'snapshot, not a subscription' caveat is boilerplate that crowds out the compute-mode explanation the agent actually needs. The useful content (privacy, modes, 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.
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 rightly mentions the AP2 artifact and execution_hash, and it covers privacy and compute routing. But key operational concepts ('registered kernel', gpu:false vs gpu:true nodes, the contents of policy_parameters) are asserted without definition and deferred to a manifest the agent cannot see, leaving real gaps for a nested-object, four-parameter compute tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 baseline is 3. The description largely restates the compute-mode semantics that the schema already states and punts policy_parameters to an external manifest ('See the tool's manifest for field names'), adding no field-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name states a concrete verb+resource (compute an IPFS CID), and the description confirms it is a deterministic OpenChainGraph compute node that exports an AP2 provenance artifact. However, it never explains what the computation actually decides or what a 'compliance_mandate' node does with policy_parameters, leaving the actual purpose wrapped in internal jargon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is the compute-mode routing (auto/server/browser), which is parameter semantics rather than when-to-use-this-tool guidance. There is no statement of when to pick this tool over any of the many sibling compute_* / build_* tools, and no conditions or prerequisites 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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_irr").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, GPU nodes always delegating to the browser, and export of an AP2 artifact carrying execution_hash for provenance. These are non-obvious traits not derivable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dominated by provenance, FV-status receipt, and compute-delegation boilerplate that crowds out the actual IRR semantics. The one useful constraint ('use synthetic or anonymised inputs only') is buried mid-paragraph, and the FV-status hash URL adds little for an invoking agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterised numeric compute tool with no output schema, the description never explains the return value shape or how policy_parameters fields map to an IRR calculation, deferring everything to describe_tool and 'the tool's manifest'. The delegation/privacy behavior is covered, but the core computational contract an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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, and parent_tool_ids in detail; baseline is 3. The description's treatment of compute mode duplicates the schema text, and it adds nothing about policy_parameters beyond deferring to 'the tool's manifest', so it does not exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name/title ('Internal Rate of Return (IRR): OpenChainGraph compute node (analytics_mandate)') and then pivots to infrastructure boilerplate. It never states what a caller must supply to compute an IRR or what distinguishes it from near-siblings like compute_xirr, compute_npv, or compute_breakeven. The jargon 'compute node (analytics_mandate)' adds no operational meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing guidance concerns the compute mode parameter ('auto' vs 'browser' vs server), which is a parameter choice, not when-to-use-this-tool guidance. There is no statement of when to pick compute_irr over compute_xirr or compute_npv, 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.
compute_isa530_audit_sampling_musISA 530 Audit Sampling + MUSCRead-onlyIdempotentInspect
ISA 530 Audit Sampling + MUS: 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-693-isa530-audit-sampling-mus.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_isa530_audit_sampling_mus").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 non-annotation context: deterministic execution, transient processing with no storage or logging, server-vs-browser delegation for gpu:true nodes, and an AP2 artifact carrying execution_hash for chain provenance. This is real behavioural information 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with the name/title, but it then spends most of its length on repeated infrastructure boilerplate ("Deterministic OpenChainGraph compute node" duplicates the first clause) and a long FV-status hash/URL that crowds out the actual audit-sampling semantics. Much of the prose does not earn its place for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 pushes the return contract off-tool ("Output schema: call describe_tool(...)"), while the nested policy_parameters object is left to an external manifest for its fields. The chain-provenance and retention behaviour is covered, but the domain input/output contract is not complete within the definition itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 no per-parameter meaning, instead deferring 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels the node as "ISA 530 Audit Sampling + MUS: OpenChainGraph compute node (compliance_control)", which identifies the domain topic but never states what is actually computed (e.g. sample size, sampling interval, projected misstatement). It does not distinguish this from domain neighbours such as plan_attribute_sample or plan_aml_disposition_sample. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance concerns the compute mode ("auto"/"server"/"browser"), which is an execution substrate detail rather than when-to-use guidance. Nothing tells an agent when ISA 530 MUS applies versus other sampling tools, nor what prerequisites or data are needed.
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 CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_large_exposures_limit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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/retained, that compute:'auto' runs server-side on Cloudflare Workers while 'browser' returns a delegation URL, and that output is a deterministic AP2 artifact carrying an execution_hash. These are genuine behavioral facts an agent cannot get from the annotations or schema. It stops short of saying what is returned on error 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is front-loaded with the tool identity and compute behavior, but a sizable fraction is framework boilerplate plus two raw URLs (spec page, fv-status receipt) that add little for tool selection. It is not bloated to the point of unusability, 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.
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 policy_parameters object whose fields are unspecified, the description should explain what the tool computes and roughly what comes back. Instead it explains only the execution/hosting model, leaving the actual computation and result shape undocumented 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.
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 are already documented and the description largely repeats the compute-mode semantics. The description adds nothing about what policy_parameters must contain — it defers field names to an external manifest, leaving the actual decision inputs opaque. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The only statement of purpose is the name/title restated ('Large Exposures Limit Check'), plus the generic label 'OpenChainGraph compute node (compliance_mandate)'. Nothing says what the check computes (e.g. Basel/CRR Art 425 large-exposure ratios) or how it differs from nearby siblings such as compute_counterparty_limit_check or check_credit_concentration_topn_sector. Most of the text is framework 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.
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 named among the many limit/concentration siblings. The only usage constraint is 'Use synthetic or anonymised inputs only', which is a data-handling caveat rather than routing guidance. Compute-mode selection is left to the schema.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_lcm_rate_derivation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context: 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. It also explains the browser-delegation behavior for gpu:true nodes, which is genuinely useful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the node identity and the compute-mode behavior, but a large portion of the text is boilerplate (URL, FV-status hash blob, 'snapshot not subscription' note) that does not help an agent select or call the tool. Several sentences earn their place; several do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with no output schema, the description should convey what comes back. It names the AP2 artifact with execution_hash and defers to describe_tool for the output schema, but the actual computed result of an LCM rate derivation is never described, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 and the parent-hash chaining intent but adds little beyond what the schema text already says, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states this is a 'deterministic OpenChainGraph compute node' for LCM rate derivation, which names a verb-like operation and a resource, but it never explains what LCM rate derivation actually computes or what decision the node serves. It spends most of its length on infrastructure metadata (compute modes, FV-status receipts) rather than differentiating the tool 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.
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 node versus alternatives, nor any prerequisites or inputs required. The only conditional logic described is the internal compute:'auto'/'browser' routing, which is invocation mechanics, not usage selection among sibling tools.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_lcr_nsfr_leverage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior. The description adds genuinely non-obvious traits beyond that: transient processing with no storage or logging, browser delegation behavior, export of an AP2 artifact carrying execution_hash, and a snapshot-based FV-status receipt. That is substantive operational context rather than repetition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is self-redundant ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node'), and most of the paragraph is framework boilerplate about the hosting platform rather than the tool's job. Full URLs, an FV-status path hash, and a deferral to describe_tool consume space that would be better spent on what the calculator needs and returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry more of the return semantics, and it only partially does (mentions the AP2 artifact and execution_hash). For a domain calculator whose inputs live in an undocumented freeform policy_parameters object, the description never names the required fields or units, leaving a material gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully documented structurally, setting the baseline at 3. The description adds nothing about them, and it leaves policy_parameters opaque by deferring field names to 'the tool's manifest' — an unexplained pointer for the one parameter that actually drives the computation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: computing LCR, NSFR and leverage ratios. That is enough to distinguish it from nearby siblings like run_liquidity_stress_test or calculate_solvency2_scr_ratio. The body text, however, never elaborates on scope (which regime/Basel version, what the ratios are computed from), so the clarity comes almost entirely from the title 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does give real usage guidance for the compute mode (auto vs server vs browser, and gpu:true always delegating), which helps an agent choose how to invoke it. It gives no guidance on when to use this tool at all versus the many other ratio/stress/computation siblings. Usage is implied by domain rather than stated.
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 PrioritizerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/non-destructive annotations, the description genuinely adds behavior: transient processing with no storage/logging/retention, synthetic-input requirement, the auto/server/browser compute semantics, browser delegation for gpu:true nodes, and an AP2 artifact with execution_hash for provenance. The compute-mode details overlap the schema, but the privacy and provenance disclosures are real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on of infrastructure boilerplate (kernel registration, Cloudflare Workers, FV-status receipts, snapshot-not-subscription) that outweighs the one sentence of domain-relevant content. It is not front-loaded on what the tool computes, and much of it duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with a nested policy_parameters object and no output schema, the description never explains what fields the decision function expects beyond 'see the tool's manifest,' nor what the prioritized output represents. Provenance and privacy are covered, but the core computational contract is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 already in the schema and defers policy_parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name ('Lending Recall Prioritizer') and labels it a 'compliance_control' compute node, but never says what a lending recall prioritization actually does — what inputs drive it, what it ranks, or what decision it supports. An agent cannot distinguish the computation from the hundreds of sibling compute_* tools by reading this.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as assess_defi_lending, resolve_recall_trace, or the other lending/compliance compute nodes. The only usage-like instruction is 'Use synthetic or anonymised inputs only,' which is a data-hygiene rule, 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.
compute_llpa_stackLLPA Stack CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_llpa_stack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already cover read-only/idempotent/non-destructive), the description discloses real behavioral traits: deterministic execution, transient processing with no storage/logging/retention, server vs browser compute binding with gpu:true always delegating, and export of an AP2 artifact carrying execution_hash for chain provenance. The privacy and delegation semantics are genuinely useful additions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operational content (compute binding, privacy, chaining, artifact export) is front-loaded and useful, but the string is padded with a bare URL and a long FV-status hash plus a sentence about offline receipt verification that does little for an agent deciding how to call the tool. Signal is diluted by infrastructure boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter node with a nested policy_parameters object and no output schema, the description covers chaining inputs, privacy constraints, and compute behavior, and points to describe_tool for the output shape. It still leaves the core semantics of the computation and the required policy_parameters fields unexplained, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 modes already in the schema and defers policy_parameters field names 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (an LLPA stack calculation) and classifies it as a deterministic OpenChainGraph compute node with a compliance mandate, but it never explains what an LLPA stack is or what the computation produces. The opening sentence largely restates the name/title, and nothing distinguishes it from the many other compute_* nodes or from sibling mortgage tools like check_agency_eligibility_matrix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 implies a prerequisite ordering by naming the upstream artifact it consumes (art-222-agency-eligibility-matrix). However, there is no explicit when-to-use/when-not statement and no comparison to any alternative tool.
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 RecomputeCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_loan_servicing_waterfall_recompute").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this read-only, idempotent, non-destructive, and closed-world. The description adds useful behavioral context beyond annotations: transient processing with no storage/logging/retention, the 'use synthetic or anonymised inputs only' constraint, browser-delegation semantics, and the AP2 artifact/execution_hash export. It still does not describe error behavior or what the returned 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is cluttered with metadata (OpenChainGraph node type, Cloudflare Workers, FV-status JSON URL, offline receipt advisory) that is largely irrelevant to tool selection. The core semantics are buried and the linked hash URL is provided without clear invocation context, hurting front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, 0-required tool with no output schema, the description covers execution mode, chaining via parent hashes, and the AP2 artifact export, which is reasonably complete. However, it omits any explanation of what the recompute produces or how policy_parameters map to the decision function, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the 'compute:auto' behavior but adds no additional parameter semantics beyond what the schema already states. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is a 'compute node' for a 'Loan Servicing Waterfall Recompute' and links to a tool page, but it never explains what the recompute actually computes - i.e., what a loan servicing waterfall is or what output the agent should expect. The name implies recomputing a waterfall allocation, but with dozens of sibling 'recompute_*' tools, the description does little to differentiate 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.
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 mention of alternatives. The 'compute' mode explanation tells how execution is routed, not when an agent should pick this tool over other recompute or waterfall 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.
compute_ltc_funding_comparatorLTC Funding ComparatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: inputs are processed transiently and not stored/logged/retained, synthetic-only inputs are required, an AP2 artifact with execution_hash is exported for provenance, and server vs browser execution semantics are spelled out. That is substantive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The tool name is front-loaded, but the body is padded with provenance metadata, a raw URL, and a 64-hex hash that consume attention without helping an agent decide to call the tool. Several clauses ('Deterministic OpenChainGraph compute node') are redundant with the opening.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Execution and data-handling semantics are well covered, and the absence of an output schema is acceptable since an AP2 artifact is mentioned. However, with 4 parameters, a nested policy_parameters object, and required-field names deferred to an external manifest, an agent still cannot determine what inputs to supply for a meaningful LTC funding comparison.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute-mode behavior but adds nothing about field syntax or the policy_parameters contents, deferring to an external 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title already say 'LTC Funding Comparator,' and the description mostly restates that with infrastructure boilerplate ('OpenChainGraph compute node (compliance_control)'). It never states what the comparison actually does or how it differs from near-neighbours like compute_education_funding_gap_calculator or analyze_dc_vs_lc_cost_benefit. An agent learns the execution substrate but not the decision function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 conditional guidance concerns compute mode plumbing, not whether this is the right tool for a funding-comparison task versus any of the many other comparator/fit 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.
compute_ltv_ratiosLTV/CLTV/HCLTV Ratio CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_ltv_ratios").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior beyond that: transient processing with no storage/logging/retention, an exported AP2 artifact with execution_hash for provenance, and downstream consumption by art-222-agency-eligibility-matrix. These are genuinely useful operational facts for an agent orchestrating 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long and redundant, repeating the 'OpenChainGraph compute node' framing twice and burying useful facts (transient processing, artifact export, downstream feed) under boilerplate and an FV-status path/hash block. Front-loading is weak: the reader must wade through generic framing before reaching anything tool-specific.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 merely points to describe_tool for the return shape rather than summarizing it, though it does note the AP2 artifact and downstream feed. For a compute tool whose policy_parameters are a free-form nested object whose fields live in an off-band manifest, the description leaves the core input contract underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 restates the compute-mode rules that the schema already carries and defers policy_parameters field names to an external manifest, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool's actual purpose (computing LTV/CLTV/HCLTV ratios) is conveyed only by the name and title, which the description simply restates. The body text is generic OpenChainGraph compute-node boilerplate that could be copy-pasted onto any node and never explains what the ratio computation does or what policy_parameters represent. Sibling tools like compute_dti_ratios and compute_ltc_funding_comparator are not referenced for differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, gpu:true delegation) and warns to use synthetic or anonymised inputs, which is real usage guidance. However, it gives no when-to-use vs when-not context and never names or routes to an alternative sibling for related ratio calculations, so the agent has no basis for choosing this tool over peers.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavioral context: inputs are processed transiently and not stored, logged, or retained; execution is deterministic; compute modes can force server or browser delegation; and it exports an AP2 artifact with an execution_hash for chain provenance. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the name and category, and the data-retention and chaining sentences earn their place. However, it is bloated with boilerplate, an inline tool URL, and a full explanation of the FV-status receipt that adds little to the agent's decision to call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, no-required, nested-object tool with no output schema, it covers execution modes, chaining, and output shape (AP2 artifact) adequately. But it never explains the core computation or what policy_parameters must contain, deferring entirely to an external manifest, leaving the semantic gap that matters most.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 a pointer that policy_parameters field names live in 'the tool's manifest,' which is marginal value; the compute-mode text largely duplicates the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('M3P Monthly Cap Calculator') and tags it as an 'OpenChainGraph compute node (payment_policy)', but never explains what an M3P monthly cap is or what the decision function actually computes. It gives a domain label rather than a distinct purpose, which is closer to tautology than a specific verb+resource statement, and offers nothing to distinguish it from the dozens 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only real usage instruction is 'Use synthetic or anonymised inputs only,' which is a safety caveat rather than when-to-use guidance. It never says when this tool applies versus alternatives, nor what precondition (e.g. a prior policy input or upstream artifact) makes it 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_mla_maprCompute MLA MAPR (closed-end)ARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_mla_mapr").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only/idempotent/non-destructive, and the description still adds substantial behavior: server vs browser execution, browser delegation URL return, transient non-retention of inputs, and the AP2 artifact/execution_hash export for chain provenance. This is rich disclosure well beyond the structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose and compute semantics effectively, but restates 'OpenChainGraph compute node / Deterministic OpenChainGraph compute node' and pads with a URL, FV-status hash path, and a describe_tool pointer. Much of the tail is identifier noise rather than decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object, chaining-capable compute node with no output schema, the description covers execution modes, provenance export, and data handling, and correctly defers return-shape detail to describe_tool. It is nearly complete, missing only explicit sibling differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only echoes compute-mode behavior and alludes to chaining via execution_hash, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Compute MLA MAPR (closed-end)') and identifies it as an OpenChainGraph compute node in the compliance_mandate family. It does not, however, distinguish itself from close siblings like recompute_mla_mapr_actuarial or compute_scra_rate_cap, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the compute-mode selection logic (auto/server/browser, gpu:true always delegates) and warns 'Use synthetic or anonymised inputs only', which is real usage guidance. But it never states when to choose this tool over the sibling MLA/SCR computations, and the downstream hint ('Output feeds: art-232-compute-scra-rate-cap') is contextual rather than routing.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_mlr_rebate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and non-openWorld. The description adds substantial behavioral context: deterministic execution, server-side vs browser delegation semantics (compute modes), transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash. This goes beyond annotations and clarifies execution location and data handling. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is verbose and repeats 'OpenChainGraph compute node' twice. It includes a long FV-status hash and URL that are unlikely to help an agent select the tool, while the core purpose is not front-loaded; the first several sentences describe infrastructure rather than what the calculator does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, data handling, and artifact provenance, and directs the agent to describe_tool for the output schema. This fills the major structural gaps. However, it still does not clarify the actual computation or what policy_parameters should contain, leaving some ambiguity about the tool's core function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 elaborates on the compute mode (auto/server/browser) with a note about browser delegation URL and gpu:true behavior, adding minor context beyond the schema, but it does not cover parent_hashes, parent_tool_ids, or policy_parameters beyond pointing 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the tool name ('MLR Rebate Calculator: OpenChainGraph compute node') and labels it a deterministic compute node, but never states what an MLR rebate is or what the computation actually produces. It offers no verb+resource specificity beyond the title and does not differentiate it from any of the many sibling compute tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The only usage constraint is 'Use synthetic or anonymised inputs only', which addresses data handling rather than tool selection. No prerequisites or decision context are provided.
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 NettingCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_multilateral_netting").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses real behavioral traits: inputs are processed transiently and not stored, logged, or retained; the node is deterministic; it emits an AP2 artifact with execution_hash; and compute mode changes where execution happens. This meaningfully extends readOnlyHint/idempotentHint rather than repeating them. It does not contradict the annotations — producing a computed artifact with a browser delegation URL is consistent with a non-destructive, closed-world 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
'OpenChainGraph compute node' is stated twice in the first two sentences, and the FV-status sentence embeds a 64-character hash plus a 'snapshot, not a subscription' disclaimer that costs an agent tokens without changing its call decision. The functional purpose is never front-loaded, so the reader must infer the tool's job from the title alone.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers output documentation to 'call describe_tool(...)' rather than describing the returned shape. For a node with nested policy_parameters whose field names are only in an external manifest, the description leaves an agent unable to construct a meaningful call without a second round trip.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 ('auto', 'browser', gpu:true delegation) that the schema states verbatim, adding little. Its one contribution is flagging that policy_parameters field names live in an external manifest, which the schema also says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title and labeling it an 'OpenChainGraph compute node (analytics_mandate) / Deterministic OpenChainGraph compute node' — category metadata, not a functional verb+resource. It never states what multilateral netting actually computes (net positions across counterparties, currencies, or obligations), and it does nothing to distinguish itself from siblings like compute_fx_netting_positions, compute_gross_to_net, or compute_intercompany_elimination_netting.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-relevant guidance is the constraint 'Use synthetic or anonymised inputs only' and the chaining hint 'Output feeds: art-260-allocate-ihb-interest.' There is no statement of when this tool is appropriate versus sibling netting/aggregation tools, nor any prerequisite or exclusion conditions.
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 ComputationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_note_h_margin_debit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Well beyond the readOnly/idempotent annotations, it discloses the compute-mode dispatch (server-side on Cloudflare Workers for gpu:false kernels, browser delegation URL for compute:browser and always for gpu:true), the transient no-storage/no-log/no-retention handling, and the AP2 artifact with execution_hash. These are exactly the operational traits an agent needs before invoking 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The execution-model and provenance details are front-loaded and useful, but the trailing URL, raw FV-status JSON path, and full 64-char hash read as boilerplate that dilutes a description whose domain substance is thin. Middle-of-range structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Execution semantics, persistence behavior, and provenance are covered, and it points to describe_tool for the output schema, so the plumbing is complete. The gap is the domain side: what the decision function computes and which policy_parameters fields it expects are deferred to an off-tool manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reiterates the compute modes but adds no syntax or field-level meaning beyond it, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title identify a specific regulatory computation (SEA Rule 15c3-3a Note H margin-debit), but the description itself only restates 'Deterministic OpenChainGraph compute node' and never explains what the margin-debit computation actually produces or how it reads the domain. An agent learns the execution model, not the analytical purpose, and no sibling is differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The one concrete usage constraint is 'Use synthetic or anonymised inputs only,' which is a real precondition. However, there is no when-to-use guidance relative to the many compute_*/recompute_* siblings, and no condition that selects this node 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_npvNet Present Value (NPV)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_npv").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 bar is lower, and the description still adds real value: server-side vs browser delegation behavior, transient non-retention of inputs, and the export of an AP2 artifact with an execution_hash for provenance. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core claims are reasonably front-loaded, but the paragraph is padded with URLs, an FV-status path, and chain-provenance boilerplate that is peripheral to invoking the tool. It is longer than the invocation-relevant content warrants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and an opaque nested policy_parameters object, the description covers execution and governance context well but never explains what inputs an NPV call needs (rate, cash-flow series, timing) or what the result looks like, leaving a substantive gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the structured fields (compute, parent_hashes, parent_tool_ids, policy_parameters) are already documented, and the description's compute-mode text merely restates the schema. Critically, the actual NPV decision inputs live in the opaque policy_parameters object, which both schema and description defer to an external manifest ('See the tool's manifest for field names'), so no added semantic value. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (compute Net Present Value) and identifies the tool as an 'analytics_mandate' OpenChainGraph compute node, which places it against the many compute_* siblings. It does not, however, differentiate itself from near-neighbours like compute_irr or compute_xirr, so an agent still has to infer the selection logic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The compute-mode guidance (auto/server/browser) is present, but that is execution configuration rather than when-to-use guidance. Nothing tells the agent when to pick compute_npv over the other NPV/discounting siblings, and there are no preconditions or exclusions stated.
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 RecomputationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: transient processing with no storage/logging/retention, the synthetic-input requirement, the AP2 artifact with execution_hash for provenance, and the auto/server/browser execution behavior. These are meaningful behavioral disclosures an agent cannot derive from the structured fields alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is padded with redundant phrasing ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') and repeats the schema's compute-mode text verbatim. The trailing FV-status URL blob and web link consume significant space without helping the agent decide or invoke.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-parameter compute node with full schema coverage and no output schema, the description adequately covers provenance, execution modes, and data handling. What it omits is the decision-function semantics themselves — what overdraft/NSF fee logic is applied, what policy_parameters fields matter, and what the result represents — leaving the agent unable to reason about the actual computation for a fee-redetermination task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 is essentially a restatement of the schema text and explains nothing about policy_parameters beyond 'See the tool's manifest', which is not provided. Baseline 3 applies with no added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title and opening phrase state the resource ('Overdraft / NSF Fee Recomputation') and imply a recompute operation, so the general purpose is legible. However, the description never explains what the recomputation actually does or how it differs from the many sibling recompute nodes (compute_apy_earned_recompute, compute_interest_accrual_recompute, compute_gl_tieout_recompute, etc.), and much of the text is OpenChainGraph 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.
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 alternative recompute nodes, nor any prerequisites or exclusions. The only usage-flavored statement is 'Use synthetic or anonymised inputs only', which is a data-handling 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.
compute_oprisk_sma_2026Basel Operational Risk SMA (2026 Reproposal)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_oprisk_sma_2026").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL, gpu:true nodes always delegate, and it exports an AP2 artifact with execution_hash for provenance. The FV-status receipt's offline-verification note is also non-obvious context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the name/title, and the compute-mode and privacy statements are relevant. But there is redundancy ('OpenChainGraph compute node' repeated) and a long embedded FV-status URL plus offline-receipt caveat that consumes space disproportionate to its selection value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute tool with an opaque nested policy_parameters object and no output schema, the description should at minimum indicate what inputs the decision function expects and what it returns. Instead it points to describe_tool for the output schema and to the manifest for field names, so an agent cannot construct a correct call from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description's compute-mode explanation mirrors the schema enum, so the schema carries the parameter meaning. The description adds nothing new for parent_hashes/parent_tool_ids and explicitly defers policy_parameters field names to 'the tool's manifest', leaving the actual decision inputs opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name identify the resource (Basel Operational Risk SMA, 2026 reproposal) and the description adds that it is a 'capital_assessment' compute node, so an agent can tell broadly what domain it serves. However, the body never states what the tool actually computes (the operational-risk capital charge from business-indicator inputs); it largely restates the title and then pivots 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives input constraints ('use synthetic or anonymised inputs only') and compute-mode mechanics, but offers no when-to-use guidance and never distinguishes this from sibling tools such as compare_basel_2023_vs_2026 or compute_rwa_erba_2026. An agent has no stated condition for selecting this over alternatives.
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 CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_options_greeks").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server-side Cloudflare Workers execution, transient processing that is 'not stored, logged, or retained', browser delegation for gpu:true nodes, and an AP2 execution_hash export. These are genuine behavioral traits not visible 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is bloated with meta-content: a long FV-status hash URL, a 'snapshot, not a subscription' aside, and a 'call describe_tool' pointer that crowd out the front-loaded purpose. Valuable compute-mode and data-handling facts are buried mid-paragraph rather than leading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Execution semantics, privacy handling and provenance are covered, and it points to describe_tool for the output schema (none is inlined). However, for a nested-object compute node it never says what decision inputs policy_parameters expects nor what greeks the response contains, so completeness is only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 (largely duplicating the schema) and adds nothing for the chaining or policy_parameters fields, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title and adds only the platform category ('OpenChainGraph compute node (risk_parameter), deterministic'). It never elaborates on what greeks are computed or what the decision function evaluates, so the actual purpose is carried almost entirely by the tool name. The heavy boilerplate around compute mechanics leaves the purpose vague relative to the ~500 siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives some operational guidance ('Use synthetic or anonymised inputs only', compute:'auto' vs 'browser' behavior) and lists downstream consumers (qfa-04-xva-cva-calculator, ptg-01-ap2-prompt-template-generator). But it never states when to pick this tool over alternatives or what preconditions apply, 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_orsa_readiness_packORSA Readiness PackBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint already given, the description still adds genuine behavioral context: deterministic execution, transient processing with no storage/logging/retention, default server-side vs forced browser delegation, and gpu:true nodes always delegating. The AP2 artifact export with execution_hash is also disclosed. Minor gap: it does not say what the browser delegation URL flow returns 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the name and node type, which is good, but a large share of the text is infrastructure boilerplate and provenance noise, including a documentation URL and a 64-hex FV-status receipt path that does not help an agent decide or invoke the tool. Tighter phrasing would preserve the useful compute/retention facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 0 required params and no output schema, the description covers execution mode and provenance but not the core question of what the ORSA computation evaluates or what inputs policy_parameters should carry. The 'see the manifest' pointer leaves the central semantic gap unresolved, so it is adequate but not sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 in the schema and adds nothing about parent_hashes/parent_tool_ids chaining syntax, and it explicitly defers the actual decision-function fields to an external manifest ('See the tool's manifest for field names'), leaving policy_parameters semantically unbound.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 the 'ORSA Readiness Pack' (compliance_control), but it never states what the ORSA readiness decision function actually computes or returns beyond 'an AP2 artifact with execution_hash'. Among many siblings named *readiness* (assess_exam_readiness_pack, run_dora_readiness_diagnostic, run_umr_aana_readiness), nothing distinguishes this one's scope. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one explicit constraint ('Use synthetic or anonymised inputs only') and explains compute-mode selection, but the compute-mode guidance largely duplicates the schema. There is no guidance on when to choose this tool over the numerous sibling readiness diagnostics, nor any prerequisites or exclusion conditions.
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 MapCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored, logged, or retained; server-side execution occurs on Cloudflare Workers for gpu:false nodes with a kernel; compute:'browser' returns a delegation URL; and it exports an AP2 artifact with execution_hash. This goes meaningfully 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text front-loads the tool name but then devolves into a dense wall of engine boilerplate, a raw URL, and an FV-status receipt hash string. Much of this is context that belongs in documentation rather than a tool description, and the core purpose is never stated concisely.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 usefully note the AP2 artifact and execution_hash return, plus transient-processing and compute semantics. However, for a 4-parameter tool with a nested policy_parameters object, the absence of any explanation of what the tool computes leaves a substantive gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 discussion of compute modes and browser delegation largely duplicates the schema's own enum description, and it adds no field-level meaning beyond what the schema already documents 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Pack Dependency Map: OpenChainGraph compute node (compliance_control)' largely restates the title and name, and 'deterministic OpenChainGraph compute node' is a tautology. The description never explains what a pack dependency map is or what dependency computation the tool actually performs, so an agent cannot distinguish its function from 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.
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 relative to any sibling tool. The only directive, 'Use synthetic or anonymised inputs only,' is an input-handling constraint, not a selection criterion among the ~500 alternatives.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_parametric_trigger_payout").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 lowered, but the description adds real behavioral context beyond them: inputs are processed transiently and not stored, logged, or retained; gpu:true nodes always delegate to the browser; execution is deterministic; and the call exports an AP2 artifact carrying an execution_hash. It stops short of describing failure modes or delegation-URL behavior in detail, so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text restates the title verbatim, repeats "OpenChainGraph compute node" twice, and pads the tail with a documentation URL and a long FV-status hash path that do not help an agent choose or call the tool. The genuinely useful content (compute modes, transient processing, artifact export) is buried among boilerplate, so the structure wastes attention.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a free-form nested `policy_parameters` object whose actual field names are deferred to a manifest, the description should tell the agent what inputs the decision function expects — it does not. It also relies on "call describe_tool(...)" instead of supplying return-shape information, and with no output schema present the description carries that burden and fails to meet it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 paragraph largely restates what the schema already documents for the `compute` enum, and it adds nothing about `parent_hashes`/`parent_tool_ids` ordering or the undocumented `policy_parameters` field contents (the schema itself just defers to "the tool's manifest"). No compensating detail is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leans on the title ("Parametric Trigger Payout Calculator") and labels itself an "OpenChainGraph compute node (compliance_mandate)" but never says what a parametric trigger payout is or what the decision function decides. It does distinguish itself structurally from siblings by naming its downstream consumer ("Output feeds: art-252-validate-cat-bond-trigger-terms"), but the actual computation is left opaque, making this a vague-purpose case rather than a clear 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage rule given 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 an agent should pick this tool over the many sibling compute/validate tools, and no prerequisites or exclusions. The compute-mode selection is explained, but that belongs to parameter semantics, 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_perp_fundingPerp Funding and Carry CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_perp_funding").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 execution, transient processing with no storage/logging/retention, server-vs-browser delegation rules, and export of an AP2 artifact with execution_hash for provenance. These are traits not present in the annotations and materially affect how an agent treats 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded but the body is padded with infrastructure boilerplate: the FV-status explanation and the full 64-character receipt hash URL consume significant space without helping an agent select or invoke the tool. The final sentence delegates the output schema to describe_tool rather than describing it here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with a nested, opaque policy_parameters object and no output schema, the description should explain the expected inputs and result shape; instead it defers to "the tool's manifest" and a describe_tool call. The domain semantics of a funding/carry calculation are wholly absent, leaving the agent unable to call it correctly on substance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's compute-mode prose largely duplicates the schema's own enum description. It adds the note that policy_parameters are computed server-side for gpu:false kernels, but no field-level detail, relying on "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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the title ("Perp Funding and Carry Calculator") and labels it an OpenChainGraph compute node, but never says what it actually computes — funding rates, carry, implied yield? No verb+resource statement of the calculation performed. It falls short of distinguishing itself 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.
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 perp-related siblings. The only selection advice concerns compute mode (auto/server/browser), which is a parameter choice, not a when-to-use-this-tool statement. It tells you nothing about inputs or scenarios that warrant it.
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 YieldCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_perp_funding_implied_yield").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive. The description does add real value beyond them: server vs browser delegation semantics, transient input handling with no retention, and AP2 execution_hash export. These are genuine behavioral traits, though the 'compute' explanation duplicates the schema text nearly verbatim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Bloated with boilerplate: the redundant 'Deterministic OpenChainGraph compute node' sentence, a verbatim duplication of the compute enum semantics, a URL, and an FV-status hash/path. These crowd out the purpose statement the agent actually needs, and the one sentence that matters most (what a funding-implied yield is) is missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a financial compute node with a nested policy_parameters object and no output schema, the description should state what the yield represents and what the compute function returns. It instead defers output to describe_tool and defers inputs to the manifest, leaving the agent with no way to reason about the tool's actual result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 an execution_hash/AP2 export note that connects to the parent_hashes parameter, which is useful framing, but policy_parameters is left to 'see the tool's manifest' – the actual decision inputs are undocumented anywhere, which prevents a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool as a 'perp_funding_rate' compute node but never actually explains what the implied yield is: no formula, no reference to the underlying perp funding rate mechanism, no indication of what the output represents. The opening sentence is largely a restatement of the title with the node identifier appended. An agent cannot distinguish this from sibling compute_perp_funding without reading source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all. The sibling list contains compute_perp_funding, compute_perp_margin, model_perp_position, compute_pt_yt_yield – the description never explains which situation selects this tool over those. The compute-mode paragraph describes 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.
compute_perp_marginPerp Margin and Liquidation CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_perp_margin").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/no-destructive profile, but the description adds real behavioral context beyond them: inputs are processed transiently and not stored or logged, compute:'auto' vs 'browser' execution paths, gpu:true always delegating, and an AP2 artifact with execution_hash emitted for provenance. The compute-mode material largely duplicates the schema, but the privacy and artifact/provenance disclosures are genuine additions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is buried under infrastructure metadata: chain-node classification, Cloudflare Workers mechanics, an FV-status receipt URL/hash, and an HTML link. Several sentences (especially the FV-status paragraph) do not help an agent decide or invoke, and the useful privacy note is the only surplus content that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 some burden but instead points to describe_tool('compute_perp_margin') for output shape and to 'the manifest' for policy_parameters fields, leaving the actual decision inputs and return values underspecified. It does give the downstream consumer (art-214) and provenance behavior, which partially compensates, but key invocation details are offloaded rather than described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 parent_hashes/chain semantics). The description's compute-mode paragraph restates the schema rather than adding meaning, and it defers policy_parameters field names to 'the manifest'. Baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line state a specific verb+resource (perpetual margin and liquidation computation), which is clear enough. However, beyond the name the description explains almost nothing about what is actually computed (margin requirement, maintenance margin, liquidation price?), and it does not distinguish itself from close siblings such as compute_derivatives_margin_workbench or model_perp_position. Purpose is understandable but vague at the level an agent needs for selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing-style hint is 'Output feeds: art-214-perp-position-lifecycle'. Nothing tells the agent when to pick this over the perp funding, perp position modelling, or derivatives margin workbench siblings.
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 ComposerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_por_liabilities_composite").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/non-open-world, and the description goes well beyond them: it explains the compute:'auto' vs 'browser' execution split, that gpu:true nodes always delegate, that inputs are processed transiently and not stored or logged, and that it emits an AP2 artifact with execution_hash and consumes artifacts from art-280-reserve-proof-verifier. That is real behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode and provenance sentences earn their place, but the block is one dense run-on paragraph mixing infrastructure boilerplate, a marketing URL, and an FV-status receipt hash that most agents will never need. Front-loading is weak — purpose is buried under framework-level framing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema the description correctly points to describe_tool, and it covers execution mode, provenance chaining and privacy handling. However, for a compute node whose input fields live in an unenumerated policy_parameters object, it never explains what the composite is or what inputs the kernel expects, leaving a substantive gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 property already carries. It adds no syntax or format detail for parent_hashes/parent_tool_ids ordering or for the policy_parameters field names (deferring 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.
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 title ('PoR Liabilities Composer: OpenChainGraph compute node') and never states what the composite actually computes — no verb describing the operation on proof-of-reserves liabilities. Domain and class ('compliance_mandate') are named, but an agent learns nothing about the computation itself, and there is no differentiation from reserve/liability siblings beyond the identifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 against the many adjacent siblings (verify_reserve_proof, precheck_reserve_attestation, compute_asset_liability_coverage, aggregate_summa_mst_liabilities). The only constraint given is an input-handling rule ('Use synthetic or anonymised inputs only'), which is a data-safety caveat, 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_portfolio_varPortfolio Covariance & VaR EngineBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_portfolio_var").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (readOnly, idempotent, non-destructive), so the bar is lower, yet the description adds real behavioral context: default server-side execution on Cloudflare Workers, browser delegation when compute="browser" or gpu:true, transient processing with no storage/logging/retention, and an AP2 artifact carrying execution_hash. This is well beyond what the annotations convey, though the FV-status receipt sentence drifts into unverifiable marketing language.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode and transient-processing statements are front-loaded and useful, but the definition is padded with chain provenance URLs, a FV-status path, and a self-referential aside ("a snapshot, not a subscription; this receipt verifies offline regardless...") that does not help an agent decide or invoke correctly. Roughly half the text earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It compensates for the missing output schema by naming the returned artifact (AP2 with execution_hash) and pointing to describe_tool, and it fully covers the compute binding. However, for a nested-object tool with zero required params, it never explains what policy_parameters must contain, deferring to an external manifest, which leaves a real invocation gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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's compute-mode explanation largely repeats the enum guidance already in the schema, and it explicitly defers policy_parameters field names to "the tool's manifest," so it adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify the resource (Portfolio Covariance & VaR), but the description itself only asserts it is a "Deterministic OpenChainGraph compute node (risk_control)" rather than explaining what variance/covariance computation it performs or how it differs from siblings like simulate_var_monte_carlo or compute_var_backtest_traffic_light. The functional meaning is carried almost entirely by the tool name, so this is minimum-viable rather than specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 relative to the many VaR/stress siblings. The chain position notes ("Consumes upstream artifacts from sim-03...", "Output feeds: qfa-03-stress-test-engine...") indicate placement in a pipeline but not the conditions that select this tool over alternatives. The only directive is an input constraint ("Use synthetic or anonymised inputs only"), which is 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_pqc_deadline_ladderCNSA 2.0 Deadline Ladder CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_pqc_deadline_ladder").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: compute:'auto' resolves server-side only for gpu:false nodes with a registered kernel, gpu:true always delegates, inputs are transient and never stored/logged/retained, and an AP2 artifact with execution_hash is exported. That 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The name/title and compute behavior are front-loaded, but the text is padded with an inline URL, a long FV-status hash, and a self-referential 'call describe_tool(...)' line. Those elements 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter nested-object node with no output schema, the description covers compute binding, provenance chaining, transient processing and where to find the output shape (describe_tool), which is adequate. It stops short of explaining the decision function's policy_parameters or what the ladder output represents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates the compute-mode semantics already present in the schema and adds nothing new about the parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name identifies the resource ('CNSA 2.0 Deadline Ladder Calculator', a compliance_mandate compute node), but the description body never explains what the ladder actually computes or how it differs from near-siblings like run_pqc_timeline_fit or check_fido_pqc_conformance. Most of the text is infrastructure boilerplate rather than a statement of the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It advises 'Use synthetic or anonymised inputs only' and describes compute modes, but gives no when-to-use guidance relative to alternatives. There is no signal about what situation should route an agent to this tool rather than the timeline-fit or FIDO PQC siblings.
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 RecordBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description usefully adds that inputs are processed transiently and not stored, logged or retained, that the node is deterministic, and that it exports an AP2 artifact carrying an execution_hash for chain provenance. The 'use synthetic or anonymised inputs only' constraint is genuine behavioral context. It stops short of describing failure modes or the gpu:true server/browser split's practical effect on results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sentences are individually tight and front-loaded around what the node is and how compute is bound, but the trailing URL and the raw FV-status SHA-256 receipt are large chunks that do not help an agent select or invoke the tool. The density of execution-mechanics jargon crowds out the one thing missing: what the tool computes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four parameters (including a nested free-form object), no output schema, and no annotations beyond safety hints, the description covers provenance, retention and compute binding but says nothing about the return payload — the actual proxy voting record — nor what policy_parameters keys are expected. It is adequate on the execution envelope and incomplete on the decision semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 carries and, for the most consequential parameter (policy_parameters), adds nothing beyond the schema's own 'See the tool's manifest for field names.' 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it is a 'deterministic OpenChainGraph compute node (compliance_control)' for a Proxy Voting Record, which identifies the resource and verb class. However, it never says what the decision function actually computes (e.g., which voting fields, over what holdings/period), so the agent cannot tell what output to expect beyond a generic AP2 artifact. It is identifiable as a compute node but not differentiated 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance concerns the compute mode (auto/server/browser) and a warning to use synthetic or anonymised inputs. There is no statement of when this tool should be used instead of the many sibling compute/validate tools, nor any prerequisites or preconditions beyond the privacy note. A reader learns how to run it mechanically, not when to reach for it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compute_pta_verifierPta VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare the safe-read profile (readOnly, idempotent, non-destructive, non-open-world), but the description adds real operational context: inputs are processed transiently and are not stored, logged, or retained, server-side execution occurs only for gpu:false nodes with a registered kernel, browser mode returns a delegation URL, and gpu:true nodes always delegate. It also notes the exported AP2 artifact with execution_hash. This meaningfully exceeds what the annotations convey, and it does not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The behavioral core (compute modes, transient processing, artifact export) is sound, but it is delivered as a dense run-on blob with a marketing URL and a 64-character FV-status hash plus a sentence about offline receipt verification that adds nothing to tool selection. The promotional/link material should not crowd the definition's front-loaded purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 verification returns; it only says an AP2 artifact with execution_hash is exported. For policy_parameters it defers to 'the tool's manifest for field names', which is not provided here, leaving the primary input under-specified. Four parameters, zero required, and nested objects would benefit from a fuller account than what is given.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 text largely duplicates the schema's own enum description ('gpu:true nodes always delegate' appears in both) and it says nothing about 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening restates the name and title ('Pta Verifier: OpenChainGraph compute node') and labels a category (compliance_control) rather than saying what is verified or computed. 'Pta' is never expanded or explained, so an agent cannot tell what the decision function actually does from the description alone. It is closer to a tautology plus execution plumbing 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The compute-mode paragraphs explain how 'auto'/'browser' behave, which is parameter-level behavior rather than tool-selection guidance. There is no statement of when to choose this over sibling compute/verify nodes (e.g. compute_verify_receipt, verify_execution_hash), and no prerequisites or exclusions beyond 'Use synthetic or anonymised inputs only'. That single constraint is the only genuine usage advice.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_pt_yt_yield").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, destructiveHint=false), the description discloses genuinely useful behavior: server-side vs browser delegation by compute mode, that gpu:true nodes always delegate, that inputs are processed transiently and not stored/logged, and that an AP2 artifact with execution_hash is exported for provenance. These are real operational traits not covered by the annotations, though return/pagination details 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Most of the text is platform boilerplate (compute binding semantics, FV-status hash URL, provenance marketing) rather than front-loaded purpose. The actual subject of the computation is never stated, and the lengthy offline-receipt disquisition does not help 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.
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 and an opaque decision function, the description never explains what policy_parameters should contain beyond 'See the tool's manifest for field names' — a punt that leaves the actual analytics contract undefined. The compute/plumbing story is complete, but the domain semantics the agent needs are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 modes, parent_hashes, parent_tool_ids, and policy_parameters thoroughly. The description adds no parameter-level meaning beyond the schema; it only loosely gestures at the artifact/execution_hash linkage. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name and the surrounding platform architecture ('OpenChainGraph compute node (analytics_mandate)') rather than explaining what a PT/YT yield computation actually produces or takes. An agent learns it is a Pendle yield tokenization analyzer, but nothing about what it calculates or how it differs from the many other 'compute_*' siblings. This is closer to tautology 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.
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_perp_funding_implied_yield, assess_defi_lending, or other analytics nodes. The only constraint given is 'Use synthetic or anonymised inputs only', which is a data-handling rule, not usage or routing guidance.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_raroc_loan_price").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and never stored or logged, execution is deterministic, and an AP2 artifact with execution_hash is exported. The FV-status snapshot note further clarifies that provenance verification is offline-capable. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with platform boilerplate, including a redundant second "Deterministic OpenChainGraph compute node" clause and a long FV-status URL with a 64-character hash. Front-loading is poor: the one useful line (transient, non-retained inputs) is buried behind infrastructure detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, untyped policy_parameters object and no output schema, the description leaves the most important gap unresolved: which fields the pricing decision function requires. Pointing to describe_tool for output and to "the manifest" for inputs offloads the burden instead of completing the definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 restates the compute-mode semantics already in the schema and defers policy_parameters field names to "the tool's manifest" without adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Beyond repeating the title, the description never says what RAROC loan pricing actually computes or returns. It spends its text on platform infrastructure (compute binding, Workers, AP2 export) rather than the domain operation, so an agent cannot distinguish this from the dozens of other compute_* siblings except by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only conditional guidance is about the compute parameter ("auto" vs "server" vs "browser"), which is parameter behavior, not tool selection. There is no statement of when to reach for this tool versus another pricing/credit sibling, and no prerequisites for the pricing inputs.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_rbc_action_level").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/destructive/openWorld, so the bar is lower. The description still adds real value beyond them: transient processing with no storage/logging/retention, server-vs-browser execution rules, an exported AP2 artifact carrying execution_hash, and explicit upstream/downstream artifact chaining.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on paragraph that leads with infrastructure abstractions rather than the tool's purpose, and it embeds an unexplained FV-status hash URL and offline-verification caveat that do not help an agent invoke 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param nested-object compute node with no output schema, the description covers chaining, compute modes, and privacy, and points to describe_tool for the output schema. However it leaves the actual decision inputs (policy_parameters field names) to an external manifest, so an agent cannot fully construct a call from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 behaviour, which the schema already documents, and defers policy_parameters field names to 'the tool's manifest' rather than adding semantics of its own.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening phrase identify it as the NAIC RBC Action Level calculator, a compliance compute node. But the body never explains what an RBC action level is or what the tool actually computes, spending its space on compute-mode plumbing instead. It also fails to distinguish itself from the close sibling compute_rbc_action_level_private.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the compute-mode semantics. There is no when-to-use vs. when-not-to-use guidance, no prerequisites, and no routing to the private sibling or to calculate_naic_clo_rbc_factor.
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 LevelCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_rbc_action_level_private").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses real behavior: inputs are processed transiently and not stored/logged/retained, and the tool exports an AP2 artifact carrying execution_hash for provenance. The compute-mode semantics add context, though they largely restate the schema's compute enum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dominated by boilerplate: a repeated 'OpenChainGraph compute node' clause, a documentation URL, a long FV-status hash receipt, and a describe_tool call for the output schema. Only two sentences (privacy and AP2 provenance) carry real information, and they are buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema, nested-object tool, the description covers compute modes, privacy posture, and provenance adequately, but it omits what the decision function actually computes and defers policy_parameters field names to an external manifest. The pointer to describe_tool mitigates the missing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description adds nothing beyond pointing to 'the tool's manifest' for 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.
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)' and the title names NAIC RBC Action Level, but the body never explains what an RBC action level is or what the tool actually computes. It does not distinguish this private-input variant from the sibling compute_rbc_action_level, so an agent cannot tell them 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.
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 the obvious sibling compute_rbc_action_level (or check_capital_adequacy_private). The only usage-adjacent statement is 'Use synthetic or anonymised inputs only', which is a constraint, 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.
compute_recordkeeping_completeness_mapperRecordkeeping Completeness MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description goes meaningfully beyond them: transient processing with no storage, logging or retention; the compute:'auto'/'server'/'browser' execution split and browser-delegation behaviour; the AP2 artifact with execution_hash for chain provenance; and the offline-verifiable fv-status receipt. It stops short of describing failure modes, latency, or what the export contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool name and status, which is good, but it then layers infrastructure boilerplate (compute binding, privacy notice, artifact export, URL, fv-status hash) whose ordering does not prioritise what the tool does. The compute-mode explanation duplicates the schema text nearly verbatim, spending words on information the agent already has.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and zero required parameters, so the description carries a real burden. It adequately covers execution semantics, data-handling and provenance, but omits the two things an agent most needs: what the tool computes and what the free-form policy_parameters object should contain. For a 4-parameter compute node this is a noticeable hole.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Reported schema coverage is 100%, but the most important parameter — policy_parameters — is documented only as 'See the tool's manifest for field names', so the actual decision fields are documented nowhere in the schema or the description. The compute-mode sentence largely restates the enum description already in the schema, and parent_hashes/parent_tool_ids are left to the schema. Baseline 3 for high coverage is appropriate, with no added value from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line name the resource ('Recordkeeping Completeness Mapper') but the description never states what it actually measures or decides — it repeatedly labels itself a 'Deterministic OpenChainGraph compute node (analytics_mandate)' instead of describing the computation. The only substantive purpose content is that it exports an AP2 artifact with execution_hash, which is infrastructure, not purpose. An agent cannot tell from this text what recordkeeping completeness means versus any of the many sibling 'compute_*' tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-directed sentence is 'Use synthetic or anonymised inputs only', which is a constraint rather than a when/when-not rule. There is no guidance on when this tool is the right choice versus the ~600 sibling tools, no prerequisites, and no exclusion conditions. Usage must be inferred 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.
compute_regulatory_obligations_registerRegulatory Obligations RegisterCRead-onlyIdempotentInspect
Regulatory Obligations 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-691-regulatory-obligations-register.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_regulatory_obligations_register").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds real behavioral context: transient server-side processing with no storage or logging, the server/browser delegation split for gpu:true nodes, and the AP2 artifact with execution_hash for chain provenance. This meaningfully extends what the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with FV-status receipt boilerplate, a full URL, and a hash string that consume most of the length, while the actual purpose statement is a single vague phrase. Front-loaded content is infrastructure plumbing rather than what the tool computes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 points the agent to describe_tool for return shape while only noting that it 'exports an AP2 artifact with execution_hash'. The compute-mode mechanics and data-handling policy are covered, but the business semantics of the register itself remain unspecified for a tool that evidently requires an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, including the compute enum and the parent_hashes/parent_tool_ids chaining semantics. The description largely restates the compute mode behavior and defers policy_parameters field names to 'the tool's manifest', adding little beyond the schema. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels this a 'deterministic OpenChainGraph compute node (compliance_control)' but never states what regulatory obligations register it actually computes, for which regime, or from what inputs. It distinguishes itself from no sibling among ~300, several of which (build_dora_roi_register, build_fria_monitoring_plan, classify_annex3_decisioning_obligations) do adjacent compliance-register work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus the many other register/assess/build compliance tools. The only 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_reg_z_appendix_j_aprReg Z Appendix J APR SolverARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_reg_z_appendix_j_apr").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 with genuinely useful context: inputs are processed transiently and not stored or logged, compute mode changes execution location, and the tool exports an AP2 artifact with execution_hash plus an offline-verifiable FV-status receipt. That said, it does not clarify how exporting an artifact squares with readOnlyHint=true, which would be worth resolving.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool's identity and compute behavior, which is good, but it crams in boilerplate ('OpenChainGraph compute node (compliance_mandate)', 'Deterministic OpenChainGraph compute node'), a URL, and a long FV-status hash receipt. Much of that is relevant, yet the density and mild redundancy make it heavier than it needs to be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema in the definition, the description compensates well: it explains compute locality, transient data handling, artifact chaining via parent hashes, provenance export, and explicitly routes the agent to describe_tool for the output schema. The main remaining gap is that the actual decision-function inputs (policy_parameters fields) are deferred to a 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the artifact-chaining intent but adds no syntax or format details beyond the schema, so it lands at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name, title, and first line establish a specific verb+resource: computing a Reg Z Appendix J APR. The description even names its position in the artifact chain (consumes art-332-build-amortization-schedule, feeds art-217-trid-apr-accuracy), which helps separate it from siblings like verify_trid_apr_accuracy or classify_qm_apr_apor_spread. It never explains what the Appendix J APR calculation actually is, but the resource identity is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the compute-mode semantics (auto/server/browser, gpu:true delegation) and the chaining context, but says nothing about when an agent should reach for this tool instead of related siblings such as compute_trid_tolerance_cure, lookup_reg_z_thresholds, or verify_trid_apr_accuracy. Usage is implied via the artifact chain 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.
compute_remittance_disclosureRemittance Disclosure Calculator (Reg E Subpart B)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_remittance_disclosure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint already covering the safety profile, the description still adds substantive behavior: auto/server/browser compute routing rules, that inputs are processed transiently and not stored or logged, and that it exports an AP2 artifact carrying execution_hash for chain provenance. Nothing here contradicts the annotations. It stops short of describing the response payload 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The title is correctly front-loaded, but the body is padded with repeated infrastructure phrasing ('OpenChainGraph compute node' twice), a long raw FV-status hash URL, and boilerplate about offline receipts that does not help an agent decide or invoke. Signal-to-noise is poor for a tool that needs to explain its actual computation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterized compute node with a nested free-form policy_parameters object and no output schema, the description covers the execution/chaining mechanics and points to describe_tool for the output shape, which is helpful. What it never supplies is the substance of the computation itself (what the Reg E Subpart B disclosure decides or what fields policy_parameters expects), leaving the core gap open.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum, and it says nothing about how parent_hashes/parent_tool_ids must pair or how policy_parameters fields are discovered beyond the schema's 'See the tool's manifest' note. Baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The lead phrase names a specific verb+resource ('Remittance Disclosure Calculator (Reg E Subpart B)') and the node type, so an agent can tell what domain it operates in. It does not, however, distinguish itself from the closely named sibling check_reg_e_remittance_disclosure, so the boundary between computing the disclosure and checking it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its role by naming the downstream artifact it feeds ('Output feeds: art-249-compare-corridor-cost') and gives one real constraint ('Use synthetic or anonymised inputs only'). It never states when to choose this tool over the sibling check_reg_e_remittance_disclosure, nor what prerequisites or exclusions apply.
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 ComposerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 processing with no storage, logging, or retention; a synthetic/anonymised-inputs-only constraint; server-side execution on Cloudflare Workers with gpu:true delegating to the browser; and an AP2 artifact export carrying execution_hash for provenance. These are meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the name, but 'OpenChainGraph compute node' and 'Deterministic OpenChainGraph compute node' are redundant, and the closing FV-status sentence is a long raw-hash aside that dilutes the operational content. The compute-mode paragraph is verbose relative to what it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 free-form policy_parameters object and no output schema, the description covers execution mode, privacy, and artifact provenance, but leaves the tool's core decision inputs opaque ('See the tool's manifest for field names') and never says what the Rule 605 publication actually contains. Adequate but with clear gaps 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 paragraph largely duplicates the compute field's own schema text. It adds no syntax, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially the title restated plus generic OpenChainGraph compute-node boilerplate: 'Rule 605 Publication Composer: OpenChainGraph compute node (regulatory_reporting).' It never states what the tool functionally produces (e.g., composes an SEC Rule 605 order-execution statistics publication) or how it differs from the many other compose_*/build_* siblings. An agent learns the execution substrate, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance versus alternatives, no prerequisites, and no exclusions. The only conditional logic given ('auto' vs 'server' vs 'browser') is really parameter behavior for the compute field, not tool-selection guidance. The reader cannot tell when this tool should be chosen over sibling composers.
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)ARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_rwa_erba_2026").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so the safety profile is covered. The description adds real behavioral context beyond that: server-side vs browser execution rules, transient processing with no storage/logging, the ban on real inputs, and the AP2 execution_hash export 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The name/title are repeated verbatim at the start and the buried 'Open at' URL plus the long FV-status receipt paragraph are verbose relative to the actionable content. The compute behavior is stated before the FV material, which is at least 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description defers return values to describe_tool('compute_rwa_erba_2026') and instead covers the compute/execution model, input handling, artifact export, and provenance verification, which is sufficient for a stateless compute node. The lack of sibling disambiguation is the main residual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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_hash chaining) are already documented in the schema. The description's compute-mode explanation largely duplicates the schema's own compute description and 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('ERBA / Standardized RWA Calculator (Basel Endgame 2026) compute node') plus the capital_assessment domain, so the agent knows it computes a regulatory RWA figure. It does not differentiate itself from close siblings like compute_rwa_scenarios or compare_basel_2023_vs_2026, leaving the agent to infer which RWA 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage context (deterministic compute node, synthetic inputs only) and explains the compute-mode switch, but gives no explicit when-to-use/when-not guidance or named alternatives among the many RWA-related siblings. The agent must infer the selection conditions.
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 ModelerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_rwa_scenarios").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), it adds real behavioral context: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs are required, browser mode returns a delegation URL, and an AP2 artifact with execution_hash is exported. This is substantive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The front is cluttered with a repeated title, an FV-status snapshot hash URL, a full page URL and long upstream/downstream id lists, while the actual compute behavior is buried mid-paragraph. Useful facts (transient processing, compute modes) are interleaved with provenance 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.
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 defers to describe_tool for it, but it does mention the AP2 artifact export, so consumers know what comes back. For a nested-object, zero-required-param compute node the description stops short of explaining the policy_parameters decision function, leaving a gap the manifest reference only partially closes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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-routing semantics and points to the manifest for policy_parameters fields, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb+resource: it is a scenario-modeling compute node for Basel RWA under capital_assessment, with a stated regulatory anchor (Basel 3.1 output floor). It does not, however, distinguish itself from near-neighbors like compute_basel31_delta, compute_rwa_erba_2026 or simulate_output_floor, so an agent cannot tell which RWA tool 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the upstream artifact it consumes (art-07-basel31-reporting-delta-calculator) and the downstream consumers, which implies where it sits in a chain, and it specifies when compute:"auto" vs "browser" applies. But there is no explicit when-to-use/when-not-use or comparison against sibling RWA 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.
compute_scra_rate_capCompute SCRA Rate CapBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_scra_rate_cap").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behaviour, yet the description adds meaningful detail: deterministic execution, transient processing with no storage or logging, browser delegation behaviour, and AP2 artifact output with execution_hash. The remaining gap is that it does not describe computation errors or domain-specific 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with useful compute-mode and privacy details, but then includes substantial low-value metadata such as the artifact URL, FV-status hash file path, and a note that the receipt verifies offline. These do not help an agent select or invoke the tool and dilute the operational content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Operationally it covers compute routing, privacy, and artifact provenance, and the schema covers parameters. It remains incomplete for a compliance computation tool because it never explains the SCRA rate cap domain or what decision function policy_parameters feed into, leaving the agent with little business context for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameter documentation already carries the burden. The description adds only light context about compute mode defaults and upstream artifact chaining, without improving on the schema's definitions of 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening states a specific verb and resource, 'Compute SCRA Rate Cap', and categorises it as a compliance_mandate OpenChainGraph compute node. However, it does not explain what the SCRA rate cap calculation actually does, so an agent cannot easily distinguish it from the many other compliance compute tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives operational guidance on compute modes and says to use synthetic or anonymised inputs only, plus mentions consuming upstream artifacts. It does not state when to choose this tool over siblings or what business condition triggers its use.
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 EngineCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_settlement_efficiency_kpi").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint:false, closed-world), and the description adds real behavioral context beyond them: transient processing with no storage/logging/retention, deterministic execution, server-on-Workers vs. browser-delegation behavior, and an AP2 artifact export with execution_hash for chain provenance. This is meaningful detail an agent cannot 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with the tool name and structured around pipeline metadata, but it repeats compute-binding behavior already in the schema and embeds a URL plus a long FV-status hash path, which is padding for an agent selecting a tool. Several sentences carry governance/provenance boilerplate rather than decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers output structure to describe_tool rather than explaining what the KPI returns. Combined with an opaque nested policy_parameters object whose field names are unspecified, an agent cannot determine what inputs the decision function needs or what the computed KPI represents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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-binding semantics rather than adding field-level meaning. policy_parameters remains opaque in both places ("See the tool's manifest for field names"), so no value is added beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description frames the tool as a "Settlement Efficiency KPI Engine: OpenChainGraph compute node (model_governance)" but never states what the KPI actually measures or computes, so the purpose is effectively a restatement of the name plus node metadata. It gives pipeline context (upstream art-78/79/80, downstream audit-trail aggregator) but does not distinguish this from the many other settlement tools (calculate_csdr_penalty, predict_settlement_fail, check_ssi_conformance, optimize_settlement_capital).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only genuine usage instruction is "Use synthetic or anonymised inputs only," and the compute-mode choice is copied from the schema rather than explanatory. Pipeline position (consuming art-78/79/80 artifacts) hints at ordering, but there is no explicit when-to-use, when-not-to-use, or alternative selection guidance versus sibling settlement tools.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 still adds real behavioral context beyond them: inputs are processed transiently and not stored/logged/retained, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for chain provenance. The 'use synthetic or anonymised inputs only' directive is a meaningful constraint on how to call it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bulk of the text is boilerplate: a 64-hex FV-status URL, an 'Open at:' marketing URL, and an explanation that the receipt 'is a snapshot, not a subscription'. None of that helps an agent decide or invoke. The first sentence is front-loaded correctly, but information density relative to length is poor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a computation node with a free-form nested input object, no output schema, and no annotations covering data handling, the description should at minimum state what the decision function consumes and produces. Instead it documents platform plumbing and points to an off-tool manifest for the one parameter that matters. An agent has enough to transmit a call but not enough to know what inputs a short-sale locate/SSR check requires.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully documented and the description only echoes the compute-mode semantics. The one genuinely opaque parameter, policy_parameters (a free-form nested object), is dismissed with 'See the tool's manifest for field names', which adds no usable semantics. Baseline 3 is appropriate where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence restates the tool title verbatim and then labels it an 'OpenChainGraph compute node (compliance_mandate)', which names no actual operation. An agent can infer the domain (short-sale locate / SSR compliance) from the title, but the description never says what is computed—whether a locate is valid, an SSR threshold is breached, or a mandate is satisfied. With hundreds of near-identical 'compute_*' siblings, no 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.
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. The only 'when' content is invocation mechanics for compute modes (auto/server/browser), which is infrastructure behavior rather than routing advice. An agent cannot tell from this text why it would pick this tool over any other compliance-mandate node.
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 HaircutBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_stock_token_collateral_haircut").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage/logging/retention, server-vs-browser execution semantics, and an exported AP2 artifact carrying execution_hash for provenance. This is genuine 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but carries boilerplate repetition ('OpenChainGraph compute node' twice) and mixes execution-model detail, privacy notes, provenance, upstream links, and a raw FV-status URL/path. The core purpose is not front-loaded; the reader wades through infrastructure text to reach the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, input privacy constraints, upstream chaining, and the exported artifact's provenance field, and points elsewhere for the output shape. It is reasonably complete, though the actual decision-function inputs remain opaque and the FV-status receipt detail is noise.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema fully documents all four parameters, including the compute enum and the parent_hashes/parent_tool_ids pairing. The description echoes the compute-mode semantics but adds little, and for policy_parameters it only defers to 'the tool's manifest for field names', which the schema also does. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence restates the title ("Halt + Staleness Collateral Haircut") and labels it a 'compute node (collateral_mandate)', which conveys the domain but never spells out the verb+resource operation the way the name implies (computing a haircut). It does not distinguish itself from close siblings like calculate_repo_haircut or compute_basel_haircut_adjusted_exposure. Purpose is inferable but mostly tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the upstream artifacts it consumes (505-tokenized-collateral-eligibility-checker, 508-repo-haircut-collateral-calculator), which implies where this sits in a chain, and it warns 'Use synthetic or anonymised inputs only.' However it never says when to choose this tool over an alternative haircut calculator, nor states exclusions.
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 EngineBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_stress_test_scenarios").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 determinism, the compute-mode routing rules (auto/server/browser, gpu:true delegation), transient processing with no storage/logging/retention, the AP2 artifact and execution_hash export, and the synthetic-input requirement. This is rich behavioral context that materially affects how an agent invokes the node.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening line front-loads the tool identity, but the body is a dense block mixing determinism, compute modes, data-handling, chain provenance, a URL, and an FV-status receipt hash. There is redundancy ('Deterministic OpenChainGraph compute node' restated) and infrastructure boilerplate that dilutes the functional signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with four parameters, nested objects, and no output schema, the description covers execution modes, data handling, artifact output, and chain position adequately. It stops short of describing what the stress-test decision function actually computes and points to an external manifest and describe_tool for the output shape, leaving a gap in the core computational contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 is 3. The description reinforces compute-binding semantics and chain provenance but adds little parameter-level meaning beyond what the schema provides, and defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Stress Test Engine' and the node class '(risk_parameter)' plus the chain position (consumes portfolio VaR, feeds FRTB IMA pre-validator) imply a risk stress-testing computation, but the description never states in plain terms what scenarios it computes or what the decision function does. The core purpose is buried under platform-infrastructure boilerplate, so an agent gets a rough idea 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.
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 useful chain context (upstream qfa-02, downstream rca-01/ptg-01), which implies when the tool belongs in a pipeline. However, it never explicitly contrasts this tool with alternatives such as run_liquidity_stress_test, simulate_var_monte_carlo, or stress_test_ap_redemption_path, 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.
compute_tempo_mainnet_fee_capacityTIP-1010 Mainnet Fee & Payment-Lane Capacity CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_tempo_mainnet_fee_capacity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value: transient processing with no storage or logging, browser-delegation behavior for gpu:true nodes, an exported AP2 artifact carrying execution_hash for chain provenance, and an offline-verifiable FV-status snapshot. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The signal is buried under provenance/verification boilerplate: absolute URLs, a long FV-status hash filename, and claims about offline verification. Multi-sentence, loosely structured, and front-loaded with infrastructure chatter rather than what the tool computes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic compute node with a nested, undocumented policy_parameters object, chaining semantics, and no output schema, the description omits the single most important fact — what the decision function actually computes. It defers the output shape to describe_tool and the input fields to an external manifest, leaving the agent without enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fields are documented in the schema and the description largely repeats the compute-mode text. Critically, policy_parameters — the actual decision inputs — are left to 'See the tool's manifest for field names', which the description neither resolves nor compensates for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state a specific resource (Tempo mainnet fee / payment-lane capacity, TIP-1010), so an agent can grasp the domain. But the body text never restates or elaborates the computation itself, and it does not distinguish this tool from close siblings such as model_tempo_gas_economics, model_tempo_payment_economics, or convert_tempo_fee_amm.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains compute-mode routing but never says when to reach for this tool versus the many sibling Tempo/fee modeling tools, nor what inputs or preconditions are required. The only usage-like guidance is '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.
compute_trid_tolerance_cureTRID Fee Tolerance and CureCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_trid_tolerance_cure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond them: transient processing with no storage/logging/retention, server-vs-browser execution paths, and an exported AP2 artifact with execution_hash for provenance. This is meaningful disclosure; it stops short of 5 only because it is generic node boilerplate rather than task-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool name and reasonably compact, but the body is dominated by reusable node boilerplate (compute modes, retention, FV-status receipt, artifact export) that crowds out task-specific content. The closing 'Output schema: call describe_tool(...)' reads as a placeholder.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance computation node with no output schema and an opaque nested policy_parameters object, the description covers execution/behavioral mechanics well but omits the essential domain content — what the decision function evaluates and what inputs it needs. An agent can invoke it operationally but cannot reason about the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 largely duplicates the schema's own 'compute' property description, and it explicitly punts on policy_parameters ('See the tool's manifest for field names'), so it adds little semantic value over the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with the tool name and labels it an 'OpenChainGraph compute node (compliance_mandate)' but never states what it actually computes — whether fees are within TRID tolerance, whether a cure is required, or cure amounts. It essentially restates the title and adds only infrastructure framing, leaving the domain purpose opaque relative to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use versus when-not guidance and no alternatives named from the large sibling set. The only directive is 'use synthetic or anonymised inputs only', which is an operational constraint rather than 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 IncomeCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_va_funding_fee_residual").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world). The description adds genuine behavioral context beyond that: transient processing with no storage/logging, export of an AP2 artifact with execution_hash, and a synthetic-inputs-only directive. Much of the remaining text is generic platform boilerplate shared across the whole family, keeping it at a solid but unremarkable 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with infrastructure boilerplate (hosted URL, fv-status hash path, offline-verification note) rather than the tool's purpose. The actual intent is buried and the passage carries several sentences that do not earn their place for agent tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a domain-specific decision-function node, the description never explains what the VA funding fee / residual income computation consumes or returns, instead pointing the agent at describe_tool and a manifest. With no output schema and a nested policy_parameters object, more explanatory content is needed before an agent can call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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's compute-mode discussion merely mirrors the schema's enum description, and for policy_parameters it defers to 'the tool's manifest' rather than adding field-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the tool name and category ('OpenChainGraph compute node (compliance_mandate)') without saying what the computation actually produces or what inputs drive it. Against a family of hundreds of compute_* siblings it offers no differentiation, so an agent can only rely on 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance concerns the compute routing parameter ('auto' vs 'server' vs 'browser'), which is already documented in the schema. There is no statement of when to choose this node over the many sibling compute tools, nor any prerequisite or scenario framing.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_var_backtest_traffic_light").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful behavior: deterministic execution, transient non-retained input handling, an exported AP2 artifact carrying execution_hash for chain provenance, and an offline-verifiable FV receipt. That goes well beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in line one, but the bulk of the text is reusable platform boilerplate, a long FV-status URL/hash, and a marketing aside ('a snapshot, not a subscription'). Much of it does not earn its place against this tool's actual task.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose core decision function lives in an opaque policy_parameters object with no output schema, the description should convey what input fields or semantics matter and what is returned. Instead it punts to 'the tool's manifest' and describe_tool(), leaving the substantive computation undocumented while over-explaining infrastructure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's compute-mode text merely restates the schema. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line names a specific verb+resource (VaR backtesting traffic-light zone calculation), which is more informative than the title alone. However, it never explains what the traffic-light zone computation does or produces (green/yellow/red exception zones), and it does not distinguish this from siblings like simulate_var_monte_carlo or compute_portfolio_var.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance concerns the compute mode (auto/server/browser) and a synthetic-inputs caution, both of which are infrastructure constraints rather than when-to-use-this-vs-alternatives guidance. Nothing tells an agent when a traffic-light backtest is the right call versus the other VaR 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.
compute_verify_receiptVerify ReceiptBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_verify_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context: inputs are processed transiently and not stored or logged, gpu:true nodes always delegate to the browser, browser mode returns a delegation URL instead of a result, and an AP2 artifact with execution_hash is exported 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool identity and key behavior, but the trailing 'Open at' URL plus a 64-character FV-status hash path consume substantial space for marginal selection value, and the 'Output schema: call describe_tool(...)' line pushes documentation elsewhere rather than earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter node with no required params and no output schema, the description covers execution modes, privacy handling, and artifact export adequately, and it explicitly redirects to describe_tool for the output shape. The main gap is that the semantics of the verification result itself are never described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 duplicates the schema text and adds nothing for parent_hashes, parent_tool_ids, or policy_parameters. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (verify a receipt), but the description itself never explains what a 'receipt' is, what the verification checks, or what a valid/invalid outcome means. Instead it spends its opening lines on compute-mode plumbing. It also fails to differentiate from the many sibling verifiers (verify_ap2_payment_receipt, verify_conversion_receipt, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to pick a compute mode (auto/server/browser) but gives no guidance on when to reach for this tool versus the dozens of sibling verify_* tools, nor any prerequisite context. The only genuine usage constraint is 'Use synthetic or anonymised inputs only,' which is a 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.
compute_wash_sale_window_guardWash-Sale Window GuardCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_wash_sale_window_guard").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 detail beyond them: inputs are processed transiently and not stored or logged, server-side kernels run on Cloudflare Workers, browser mode returns a delegation URL, and the call exports an AP2 artifact with an execution_hash. The FV-status receipt note is also useful provenance context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by boilerplate that appears to be shared across sibling compute nodes (compute binding, Cloudflare Workers, transient processing, AP2 export, FV-status URL, describe_tool pointer). Only the domain-specific wash-sale logic is absent, so the bulk of the length is padding rather than earned content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object, zero-required compliance tool with no output schema, the description should explain what the decision function consumes and produces. Instead it defers to 'the tool's manifest' and to describe_tool, leaving an agent unable to determine required policy_parameters fields or the shape of the wash-sale result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 manifest pointer for field names. The description adds nothing about parameter meaning or format beyond what the schema provides, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels this a 'compute node (compliance_control)' but never states what the wash-sale window guard actually computes — no verb+resource describing the wash-sale rule, window length, or decision output. The name/title carry the meaning; the description mostly restates infrastructure metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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', gpu:true delegation) but gives no guidance on when to reach for this tool versus related siblings such as compute_short_sale_locate_ssr_checker or check_sod_matrix. There is no when-to-use or when-not-to-use framing for the compliance decision itself.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/idempotent/non-destructive, so the bar is lower, and the description adds real value: transient processing with no storage/logging/retention, browser delegation semantics, and the AP2 execution_hash provenance export. Its gap is that it never characterizes the computed result itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate, a raw tool URL, a 64-character spec hash, and an FV-status URL — none of which help an agent select or invoke the tool. The actual purpose is never front-loaded, so the padding crowds out the useful content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 are left to an external manifest, the description should compensate by explaining what the clock yields and what inputs it needs. Instead it spends its length on compute plumbing, leaving the core decision unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no field-level detail and for the nested policy_parameters explicitly 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description repeatedly labels itself an 'OpenChainGraph compute node (compliance_control)' but never says what the whistleblowing channel clock actually computes or measures, or what domain obligation it addresses. An agent cannot distinguish this from the many other 'compute_*' siblings except by the name itself, which the description merely restates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is operational guidance about compute modes ('auto'/'browser') and a caution to 'use synthetic or anonymised inputs only', but nothing on when this tool should be selected over alternatives or what precondition triggers a whistleblowing clock check. No sibling routing is offered.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("compute_xirr").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: server-side vs browser delegation semantics, transient non-retained processing, the 'synthetic or anonymised inputs only' constraint, and export of an AP2 artifact with execution_hash. That is meaningful behavioral disclosure, though it is generic to all nodes rather than specific to XIRR.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with boilerplate — FV-status hashes, a URL, provenance prose — that is irrelevant to invoking XIRR. The useful content (the tool's actual function) is absent while low-value infrastructure text dominates, so the size is not earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a computation tool with nested policy_parameters, the description defers the actual input contract to 'the tool's manifest' and returns to describe_tool(), leaving the agent without the XIRR cash-flow field names or expected shape. With no output schema, the description should carry more of this burden than it does.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 merely duplicates the schema enum description and adds no field-level meaning, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the title ('XIRR (Irregular Dated Cash Flows)') and then pivots entirely to infrastructure boilerplate about OpenChainGraph compute nodes. It never explains what XIRR actually computes (an internal rate of return over irregularly dated cash flows) or how it differs functionally from siblings like compute_irr or compute_npv. The generic verb 'compute' plus a title echo 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.
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 text concerns compute mode selection (auto/server/browser), which is a parameter concern rather than tool-selection guidance. Nothing tells the agent when to pick compute_xirr over compute_irr, compute_npv, or the many other finance compute nodes.
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 ConverterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("convert_markdown_document").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive traits beyond them: 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 is described as an offline-verifiable snapshot. This is real behavioral disclosure, though it omits error/timeout behavior for the browser-delegation path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening 'Markdown Document Converter: OpenChainGraph compute node' merely restates the title, and the tail is padded with an FV-status hash, a philosophical aside ('a snapshot, not a subscription'), and a redirect to describe_tool. The genuinely useful transient-processing sentence is buried mid-block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 free-form nested object and no output schema, the description leaves the most important unknown — what fields policy_parameters must contain — to an external manifest the agent cannot read. It compensates slightly by pointing to describe_tool for the output shape and by naming the downstream consumer, but a calling agent still lacks enough to construct a correct request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 rules already in the schema. For policy_parameters it defers to 'See the tool's manifest for field names', which adds no actionable detail. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title give a specific verb+resource, but the description itself never states what the conversion actually produces (markdown to what?) — it leads with 'OpenChainGraph compute node (compliance_mandate)' infrastructure jargon. The only concrete output hint is 'Exports an AP2 artifact with execution_hash' and the downstream link to art-191-conversion-receipt-builder. Purpose is inferable but not stated, and no sibling (e.g. convert_tabular_data) is addressed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The compute-mode text ('auto' default, 'browser' forces delegation) is parameter-level behavior, and 'Use synthetic or anonymised inputs only' is a restriction, not usage context. An agent gets no selection criteria.
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 ConverterARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("convert_tabular_data").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantial behavior: transient processing with no storage/logging/retention, server-vs-browser execution semantics including a browser delegation URL, and an AP2 artifact export with execution_hash for chain provenance. This is the description carrying real weight 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and compute semantics are reasonably front-loaded, but the description is padded with provenance boilerplate ("a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched"), a raw URL, and an FV-status file path that do 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high complexity (nested objects, chain provenance, compute-mode branching) and the absence of an output schema, the description does a good job covering execution semantics and deferring return-shape detail to describe_tool. Only the actual conversion semantics of policy_parameters remain opaque, 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.
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 chaining parameters are already documented in the schema. The description adds marginal context (server-side computation for gpu:false nodes with a registered kernel) but largely restates what the schema enum description already provides, landing at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb and resource ("Tabular Data Converter", a deterministic OpenChainGraph compute node) and names its downstream consumer ("Output feeds: art-191-conversion-receipt-builder"). It does not, however, explain what conversion it actually performs or how it differs from other conversion/compute siblings, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives operational guidance about compute modes ("auto" default vs "browser" forcing client-side execution) and a constraint ("Use synthetic or anonymised inputs only"), but it never says when to reach for this tool versus an alternative or what prerequisites select it. Usage is implied rather than spelled out.
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 CalculatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("convert_tempo_fee_amm").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world. The description adds genuine non-structured context: transient processing with no storage/logging/retention, browser delegation for gpu:true nodes, and an AP2 artifact with execution_hash. That is real value beyond the annotations, though the compute clauses 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool name and node type, but the body is padded with a long FV-status explanation, an artifact URL, and a self-referential describe_tool instruction. Several sentences describe infrastructure rather than helping the agent decide or call correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters including a nested free-form object and no output schema, the description partially compensates by pointing to describe_tool for the output schema and to the manifest for policy_parameters field names. However, it never explains what the tool computes, leaving a substantive gap for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 present in the schema, and for the opaque policy_parameters it defers to 'the tool's manifest' without adding field-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with the title and labels itself an 'OpenChainGraph compute node (treasury_mandate)', but never states what the fee-AMM conversion actually computes or what a 'fee-AMM conversion' means. It largely restates the name rather than giving a specific verb+resource an agent can distinguish from siblings like model_tempo_payment_economics 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over the many sibling tempo/fee tools. The compute-mode discussion explains how execution happens, not when the tool is the right choice, and there are no exclusions or alternatives named.
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 CorrelationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("correlate_ap2_cartmandate_x402").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, GPU nodes always delegate to browser, and execution_hash provenance is exported. Nothing here 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with a redundant restatement ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') and then mixes a URL, a raw FV-status hash filename, and offline-receipt caveats into the same block. The useful compute-mode and transience sentences are buried behind boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, it does disclose the artifact export, provenance hash, upstream dependency, and compute semantics, and it points to describe_tool for the return shape. It still leaves the actual correlation logic and the policy_parameters contract opaque, so an agent cannot fully predict the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only 4 parameters, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description's compute-mode text largely restates the schema enum, and it defers policy_parameters field names to 'the tool's manifest', adding little beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific node ('correlate_ap2_cartmandate_x402', compliance_control) and states it exports an AP2 artifact with execution_hash while consuming artifacts from art-595-ap2-cartmandate-hashchain-builder, which does distinguish it somewhat from siblings like build_ap2_cartmandate_hashchain. However, it never explains what 'correlation' actually computes, so the core purpose is asserted rather than clarified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real operational guidance on compute modes ('auto'/'browser', gpu:true always delegates) and warns 'Use synthetic or anonymised inputs only', plus names the upstream artifact it expects. But it never says when to pick this tool over the many adjacent validate_ap2_*/build_ap2_* siblings, so usage selection is left implied.
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 CrosswalkBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, so the description earns credit for adding operational context: transient processing with no storage/logging/retention, a synthetic-inputs-only directive, and deterministic server-vs-browser execution routing. The synthetic-input warning in particular is behaviorally important and not derivable from the schema. It stops short of describing error behavior or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core statement is front-loaded, but the text is bloated: "OpenChainGraph compute node" appears twice in consecutive sentences, compute-mode semantics are repeated from the schema, and a long FV-status receipt URL with a 64-char hash consumes significant space for marginal routing value. Several sentences could be cut without losing signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry return-value detail, and it does name the AP2 artifact with execution_hash. But the decision function's actual inputs are deferred with "See the tool's manifest for field names," leaving an agent unable to construct policy_parameters from the definition alone. Adequate for chaining, incomplete for the core compute.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully. The description's compute-mode prose largely duplicates the schema's own definition rather than adding syntax, ordering, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description spends its opening on framework meta-language ("OpenChainGraph compute node (compliance_mandate)") that restates the title rather than stating what the crosswalk actually computes. It never says what trust relationship between agent payment rails is being crosswalked or what decision the node produces. The only concrete purpose signal is the output ("Exports an AP2 artifact with execution_hash"), which is output-side, not task-side.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus siblings such as compare_agentic_rail_protocols, select_agentic_checkout_protocol, or map_agent_payment_mandate. However, the upstream/downstream artifact references (art-132 key rotation auditor in, art-134 directory publish readiness out) implicitly position the tool in a chain, which is weak but real routing guidance.
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 IndexBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("currency_basket_index").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, yet the description adds real behavioral context: transient input processing (not stored, logged, or retained), a directive to use synthetic/anonymised inputs only, compute routing semantics, and that an AP2 artifact with execution_hash is exported. It does not contradict annotations, and adds more than the structured fields alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It front-loads name and mode, but wastes a sentence restating 'OpenChainGraph compute node' twice in near-identical form and packs in boilerplate about FV-status receipts that is tangential to invocation. Structure is segmentable, but several sentences could be merged or dropped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 tells the agent what is returned (an AP2 artifact with execution_hash) and where the output schema lives via describe_tool, and it covers privacy constraints, compute routing, and chaining from a named upstream artifact. For a 4-param, zero-required compute node this is close to complete, though the core computation semantics remain unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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-mode explanation essentially restates the schema field, and it directs the agent to the tool manifest for policy field names, adding no semantics beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the resource (Currency Basket Index) and classifies the tool as a deterministic compute node, and it points at the upstream sibling art-560-oracle-price-aggregation. However it never explains what the computation actually does (basket weights, FX aggregation, index value) beyond the tautological 'OpenChainGraph compute node' phrase repeated twice, so an agent gets the category 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is present but limited to compute-mode routing ('auto' default, 'browser' forces client-side, gpu:true always delegates) and the note that upstream artifacts from art-560-oracle-price-aggregation are consumed. There is no explicit when-to-use-this-tool vs a sibling alternative, only implied context from the chain dependency.
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 EngineARead-onlyIdempotentInspect
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). Output schema: call describe_tool("customer_risk_rating").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and idempotent annotations, the description adds meaningful behavioral detail: client-side execution, zero PII, zero network, AIN Bridge input prefill, widget rendering, and a way to obtain the output schema via describe_tool. This is exactly the kind of context an agent needs to invoke it safely and interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is not bloated overall, but it repeats 'client-side' and 'zero PII' twice, and the FATF dimension list is grammatically/punctuation-imperfect. The first sentence earns its place, but tighter editing would improve clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a client-side widget tool with no output schema, the description is largely complete: it explains the runtime, data-handling guarantees, input mechanism, interactive link, and points to describe_tool for output schema discovery. The main gaps are the missing sixth FATF dimension and the reliance on an external manifest for input element IDs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'inputs' parameter is already documented in the schema as a map of element IDs to values, so schema coverage is high, giving a baseline of 3. The description adds domain context around KYC dimensions and AIN Bridge prefill, but it does not enumerate the actual element IDs or the full six-dimension input structure, leaving the agent dependent on the referenced manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Score individual and entity KYC risk') and names the FATF dimension categories, which distinguishes it from generic scoring or widget tools. However, it claims 'six FATF dimensions' but only enumerates five, and 'Browser-based, client-side only' is awkwardly appended to the list, creating some confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: it is a browser-based, client-side interactive widget fed through the AIN Bridge, with zero PII and zero network, and includes a user-facing link. It does not explicitly name alternatives or when-not-to-use conditions, but the intended context is reasonably clear.
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 DecoderCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("decode_c2pa_aiml_assertions").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 traits: server vs browser execution semantics, GPU node delegation, transient non-stored/non-logged input handling, and export of an AP2 artifact carrying execution_hash. These are behaviors an agent cannot infer from the annotations. It stays short of describing the decoding result itself, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a boilerplate wall: compute-binding prose, a privacy sentence, an AP2 export claim, a marketing URL, and a 64-char FV-status filename, all before any meaning about decoding. The one instruction an agent needs ('call describe_tool for the output schema') is buried at the end. Little of this earns its place for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a decode tool with no output schema and 4 parameters, the description omits the core operational facts: what assertions are decoded, what the input must look like, and what the response contains. It covers compute routing and privacy well but leaves the actual function opaque, forcing a describe_tool round-trip before the agent can judge fit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 carries the parameter burden and baseline 3 applies. The description's compute-mode paragraph largely duplicates the schema's compute enum documentation rather than adding new syntax or default behavior. parent_hashes/parent_tool_ids/policy_parameters are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('C2PA AI/ML Assertion Decoder') and labels itself an 'OpenChainGraph compute node (compliance_control)', which is a category tag rather than a statement of what decoding does. It never says what an AI/ML assertion is, what gets decoded, or what the agent gets back, so it reads as a near-tautology. It is also not distinguished from siblings like validate_c2pa_manifest or check_camera_provenance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 text concerns compute routing ('auto'/'browser'), not tool selection. The lone usable constraint is 'Use synthetic or anonymised inputs only', which is a safety note rather than usage guidance. An agent has no basis for choosing this over other C2PA or content-credential tools.
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 DecoderCRead-onlyIdempotentInspect
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. Consumes upstream artifacts from: art-700-authorization-payload-linter. Open at: https://ainumbers.co/chaingraph/art-614-eip7702-authorization-tuple-decoder.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("decode_eip7702_authorization_tuple").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses concrete behavior: transient, non-retained input processing, the auto/server/browser compute routing rules, that browser mode returns a delegation URL, and that it exports an AP2 artifact with an execution_hash for provenance. This is real added context, though much of it is node-wide 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded and repetitive ("Deterministic OpenChainGraph compute node" twice, title restated), and front-loads boilerplate and a URL/FV-status path ahead of any functional content. Much of it does not earn its place for an agent trying to call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 delegates the output to describe_tool without explaining what a decoded tuple result looks like. Combined with a nested policy_parameters object and no statement of the core transformation, the description is incomplete for the tool's actual job despite covering infra concerns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all four parameters are documented in the schema. The description only echoes the compute-mode semantics already in the schema and says nothing about parent_hashes, parent_tool_ids, or policy_parameters, so it adds no meaning beyond structured data — the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title ("EIP-7702 Authorization-Tuple Decoder: OpenChainGraph compute node") and then pivots to infrastructure boilerplate about compute routing, artifact export, and FV-status receipts. It never states what decoding an authorization tuple actually does, what it validates, or what it produces, so it does not meaningfully distinguish this tool from siblings like lint_authorization_payload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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" plus an upstream-artifact mention (art-700-authorization-payload-linter). There is no guidance on when to reach for this decoder versus lint_authorization_payload or other 7702-related tools, 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.
decode_mpp_sessionTempo MPP Agent MandateBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("decode_mpp_session").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful context beyond that: deterministic execution, transient processing with no storage/logging/retention, server-vs-browser delegation semantics for GPU nodes, and export of an execution_hash for provenance. It stops short of describing error behavior or what a compute failure returns, so it is not fully complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and compute-mode constraints are front-loaded, which is good, but the single run-on paragraph is dense with low-signal metadata: a URL, a full SHA-256 FV-status receipt, and three artifact IDs. Some of this (the offline-verification note) earns its place, but the string of hash and link details dilutes the actionable sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic compute node with a nested policy_parameters object, the description is fairly complete: it covers compute modes, GPU delegation, privacy/transient handling, provenance via execution_hash, and upstream/downstream chaining, and it points to describe_tool for the output schema, so no output schema is needed. The remaining gap is the unspecified contents of policy_parameters, which it explicitly delegates to the tool manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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, including the compute enum and the parent_hashes/parent_tool_ids pairing rule; this establishes the baseline of 3. The description restates the compute-mode behavior but adds no new syntax or format meaning for policy_parameters (it defers to the tool manifest), so it does not exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 payment_mandate family that exports an AP2 artifact with an execution_hash, which pins down the resource. However, the tool name 'decode_mpp_session' implies decoding an existing session, while the text describes computing/exporting a mandate, leaving the core verb ambiguous. Sibling tools are referenced only by artifact IDs (art-34, art-01/02/04), not by tool names, so differentiation from siblings like validate_ap2_mandate_credential or map_agent_payment_mandate is not made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says it consumes upstream artifacts from art-34-tempo-fit-diagnostic and feeds art-01/02/04, and instructs 'Use synthetic or anonymised inputs only', which implies its place in a chain and its input constraints. It does not, however, state when to choose this tool over alternative mandate/validation tools, nor any prerequisite or exclusion beyond the synthetic-input rule.
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 SimulatorARead-onlyIdempotentInspect
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). Output schema: call describe_tool("decode_x402_payment").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already cover readOnlyHint, idempotentHint, and destructiveHint, and the description adds genuinely useful behavioral context: the tool runs client-side with zero PII and zero network, renders as an interactive widget, and receives inputs via the AIN Bridge. This goes beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the purpose, and keeps the use-case sentence immediately after. The 'Output schema: call describe_tool(...)' line is a slight indirection but is concise rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This tool has no output schema and a generic single-input wrapper, yet the description does not specify the actual input keys, expected values, or result shape. The pointer to describe_tool helps, but the description is not fully self-contained for an agent that needs to invoke it correctly without extra discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema only describes a generic 'inputs' map and defers to a manifest input_schema, while the description does not explain actual element IDs, value formats, or how to specify a header or payload. Schema description coverage is high, so the baseline is 3, but the description adds no real parameter-level clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states three concrete capabilities with specific verbs and resources: decode an x402 payment header, lint an exact-scheme PaymentPayload, and describe the HTTP-402 verify/settle flow. This clearly differentiates the tool from the broader x402 sibling set, and the title reinforces the same message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says 'Use when a developer is integrating x402 and needs to inspect a header, check a payload shape, or understand the flow,' providing a clear trigger context. It does not mention when-not-to-use or name alternative sibling tools, so it stops short of full routing guidance.
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 DeriverCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("derive_beacon_fair_sample").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 important behavioral context beyond that: execution is deterministic, inputs are "processed transiently... not stored, logged, or retained," synthetic/anonymised inputs are required, compute may run server-side or delegate to the browser, and the tool exports an AP2 artifact with execution_hash for provenance. It does not contradict the annotations and usefully supplements them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with boilerplate that does not help an agent invoke the tool: the artifact URL, the FV-status SHA-256 hash, and the statement that the receipt verifies offline. It is not front-loaded around what the tool derives. While the compute and privacy sentences earn their place, several sentences add little operational value, making the definition longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex: four parameters, a nested policy_parameters object, and no output schema. The description covers compute routing, privacy constraints, and provenance output, and points agents to describe_tool for the output schema. However, it never explains what fair-sampling derivation computes or how policy_parameters affect it beyond pointing to a manifest. It is adequate but incomplete for a specialized compliance compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 repeats the compute-mode behavior from the schema description but adds no syntax or meaning beyond it, and it does not explain policy_parameters field names, only saying to see the manifest. With full schema coverage, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mostly restates the tool name and title: "Beacon-Seeded Fair-Sampling Deriver: OpenChainGraph compute node (compliance_control)." It identifies the category and that an AP2 artifact with execution_hash is exported, but it never explains what "beacon-seeded fair sampling" derives or what decision function is computed. An agent can see that it is a deterministic compliance compute node, but not what it actually does or how it differs from the many other derive/compute siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete guidance for the compute parameter: "auto" defaults to server-side execution for gpu:false nodes with a registered kernel, "browser" forces client-side execution and returns a delegation URL, and gpu:true nodes always delegate. It also states "Use synthetic or anonymised inputs only." However, it gives no guidance on when to choose this tool over alternative sibling tools, and no explicit when-not conditions.
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 DeriverCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("derive_parametric_index_from_receipts").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: the auto/server/browser compute routing rules, that inputs are processed transiently and 'not stored, logged, or retained', and that it emits an AP2 artifact with an execution_hash for chain provenance. These are real behavioral traits an agent needs. It stops short of describing error/fallback behavior when a kernel is missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense boilerplate wall in which the actual purpose is buried after 'OpenChainGraph compute node' repetition, and it ends with a long FV-status hash URL and a self-referential 'call describe_tool(...)' instruction. Multiple sentences are template scaffolding rather than tool-specific information, so it is not front-loaded and wastes the reader's attention.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and no output schema, the description covers compute routing, retention, and the provenance artifact, but leaves policy_parameters undefined ('See the tool's manifest') and provides no output-shape explanation despite the absence of an output schema. It is minimally adequate but not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 only restates the compute-mode semantics already in the schema and adds nothing about policy_parameters field names (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.
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' plus 'Exports an AP2 artifact with execution_hash' indicate it derives some index and emits a provenance artifact, but the description never explains what a 'parametric index' actually is or what it is derived from beyond 'receipts'. It does not distinguish itself from siblings like compute_parametric_trigger_payout or derive_beacon_fair_sample, so an agent cannot tell what makes this node unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives. The only directive is 'Use synthetic or anonymised inputs only,' which is an input-hygiene constraint, not tool-selection guidance. The 'Output feeds: art-251-...' line hints at a downstream consumer but does not say 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.
describe_toolDescribe one AINumbers toolARead-onlyIdempotentInspect
Returns the full definition of exactly one AINumbers MCP tool: name, description, inputSchema, outputSchema (the JSON Schema its structuredContent validates against), annotations, and lifecycle_status. Use it after find_tool or find_chain hands you an mcp_name, or after tools/list whose entries omit outputSchema to keep the catalog reply small — the pointer sentence "Output schema: call describe_tool("")." marks exactly those tools. One call, no side effects, zero network on the server: the definition comes from the vendored catalog. Unknown names are rejected with -32602 plus the nearest registered names.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Exact mcp_name to describe (e.g. "recompute_payment_waterfall"). Use find_tool for fuzzy search; this takes the exact name only. |
TDQS
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 significant behavioral context beyond those: 'One call, no side effects, zero network on the server: the definition comes from the vendored catalog' (disclosing source and network behavior), and documents the error response format for unknown names ('rejected with -32602 plus the nearest registered names'). This enriches the annotation profile with concrete operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it opens with the return value, then usage context, then side-effect/error behavior. Every sentence adds a distinct fact. Slightly long (around 90 words) but efficient for the amount of context it packs; not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter tool with a fully described schema, strong annotations, and a detailed description covering usage, error handling, and data source, nothing needed to invoke it correctly is missing. The absence of an output schema is compensated because the description lists the returned fields explicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (the 'name' parameter is fully documented with its description, type, and example). The schema already includes the crucial guidance 'Exact mcp_name to describe' and 'Use find_tool for fuzzy search; this takes the exact name only.' The description reinforces this but does not add new parameter-level insight; baseline 3 is appropriate given the schema carries the explanatory burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Returns') and resource ('full definition of exactly one AINumbers MCP tool'), listing the exact fields returned (name, description, inputSchema, outputSchema, annotations, lifecycle_status). It clearly distinguishes itself from find_tool and find_chain by noting it requires an exact name and returns the full definition, while they return pointers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: after find_tool/find_chain provides an mcp_name, or after tools/list omits outputSchema. Explicitly names the alternative for fuzzy search (find_tool) and states the condition for using this tool ('exact name only'). No ambiguity about routing.
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 DetectorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("detect_timeseries_anomalies").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint, etc.), the description discloses determinism, server-side vs browser execution, transient processing with no storage/logging, AP2 artifact export with execution_hash, and chain provenance. This is rich behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and front-loads infrastructure details, URLs, and offline-verification notes that do not help select or invoke the tool. Several sentences (e.g., FV-status path, 'receipt verifies offline') are extraneous for the agent's task.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex chained compute node, the description covers dependencies, compute modes, privacy, and artifact export, but it never explains the core anomaly-detection input/output semantics. It defers output schema to describe_tool and policy_parameters to an external manifest, leaving an agent with gaps about what the tool actually computes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 adds little parameter-level meaning beyond referring to upstream artifacts for parent hashes and stating that policy_parameters follow the manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title ('Time-Series Anomaly Detector') and adds infrastructure labels like 'OpenChainGraph compute node (risk_control)' rather than explaining what anomalies are detected or how. It does not distinguish this tool from sibling anomaly detectors such as detect_transaction_anomalies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. The mention of upstream/downstream artifacts describes pipeline position but does not say when an agent should select this detector. The compute-mode instructions are parameter guidance, not usage selection.
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 DetectorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("detect_transaction_anomalies").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 is not required to establish that. It goes further by disclosing transient processing ('not stored, logged, or retained'), the compute binding behavior, and provenance exports (execution_hash, AP2 artifact, upstream/downstream links). It lacks cost/rate-limit disclosure, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Densely packed with infrastructure boilerplate, an FV-status SHA-256 hash, and a URL, much of which does not help invocation. The purpose is nominally front-loaded but the paragraph is sprawling and includes provenance/hash material that crowds out operative guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a read-only compute node with no output schema, the description covers data handling and provenance but leaves the actual computation semantics and the policy_parameters payload opaque, redirecting to describe_tool and an external manifest. It is adequate for an agent that will follow those pointers, but not self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, for the most important input (policy_parameters), defers to 'the tool's manifest for field names' rather than explaining accepted fields — so it adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'Isolation Forest Transaction Anomaly Detector' names a specific method and resource, and the description situates it as a 'risk_control compute node'. But the body never plainly states what it detects or returns (e.g. 'flags anomalous transactions in a batch'), spending its words on compute infrastructure instead. An agent gets the gist from the title but little operative clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a constraint ('Use synthetic or anonymised inputs only') and a compute-mode explanation, but no guidance on when to pick this over its obvious sibling 'detect_timeseries_anomalies' or 'score_aml_typologies'. The alternative-detection guidance an agent needs is entirely absent.
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 DeterminationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("determine_deposit_insurance_coverage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs are required, and it exports an AP2 artifact with execution_hash for provenance. That is genuine context beyond the annotations. It does not, however, describe the response shape or determinism of the decision output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with infra boilerplate (compute binding, Cloudflare Workers, delegation URLs, retention policy, FV-status receipt hash, artifact URL) before the actual tool purpose, which never arrives. A large fraction of the text is irrelevant to selecting or invoking the tool, so it is under-focused rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool takes a nested, schema-less policy_parameters object and has no output schema, so the description must explain what inputs the decision function needs and what a determination yields. It does neither – it names a manifest for field names and stops. For a compliance-determination node 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already carries the baseline. The description only re-states the compute-mode semantics that the schema documents verbatim, and for policy_parameters – an untyped nested object with no field schema – it merely defers to 'the tool's 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.
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 ('determine deposit insurance coverage'), but the description itself never explains what the determination actually computes – coverage limits, ownership categories, per-depositor aggregation, etc. Instead it restates the title and pivots to OpenChainGraph infrastructure vocabulary ('compliance_control', 'compute node'). An agent learns the tool exists but not what it decides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance relative to siblings such as compute_fdic_assessment_rate or validate_fdic370_output_file, and no exclusions. The compute-mode paragraph is operational guidance about execution location, not about 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.
diagnose_canton_readinessCanton Tokenization Readiness DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("diagnose_canton_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, synthetic inputs are required, and an AP2 artifact with execution_hash is exported for provenance. Compute-mode routing (server vs browser delegation) is also disclosed. It stops short of explaining what the diagnostic returns or its determinism guarantees, keeping it at 4.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, but the body is a dense boilerplate run-on mixing compute plumbing, a marketing URL, and an fv-status hash path that an agent cannot act on. The privacy sentence and the downstream-chain note earn their place; the URL and receipt path do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 free-form policy_parameters object, the description does point the agent to describe_tool for the output shape, which partially compensates. But it never says what the Canton readiness diagnostic computes or which dimensions it scores, leaving the core question of the tool unanswered for a 4-param compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates the compute modes but adds nothing for the chaining fields, and explicitly defers policy_parameters field names to 'the tool's manifest', a gap the schema also leaves open.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line names a specific verb+resource: a readiness diagnostic for Canton tokenization, and labels it an OpenChainGraph compute node. It is separable from the validate_canton_* siblings (which check specific Canton properties) and the generic readiness siblings. However it never states what the diagnostic actually evaluates, so the resource is only a name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 against alternatives such as run_tokenized_settlement_fit or assess_mica_casp_readiness. The only adjacent hint is 'Output feeds: 504-settlement-risk-capital-optimizer', which describes downstream chaining rather than selection criteria for 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 DigestBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("digest_gleif_snapshot").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotent and non-destructive, and the description is consistent with that. It adds genuinely useful context beyond annotations: inputs are processed transiently and not stored/logged/retained, the tool exports an AP2 artifact with an execution_hash for chain provenance, and it notes the FV-status receipt verifies offline. That is substantive behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded but leads with jargon rather than the task. The text is padded with a long URL, a raw FV-status SHA-256 path, and offline-verification boilerplate that a calling agent does not need to select or invoke the tool, diluting the actionable compute and privacy guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and no output schema, the definition omits what the digest actually returns (deferring to describe_tool) and does not explain policy_parameters. It covers compute semantics and privacy well, but an agent still lacks enough to know the output shape or the decision fields it must supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 behavior (already fully documented in the schema) and hints at chaining via 'execution_hash for chain provenance', but gives no additional meaning for policy_parameters ('see the tool's manifest') or the parent hashes beyond what the schema says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with 'GLEIF Snapshot Digest: OpenChainGraph compute node (cryptographic_mandate)', which restates the name/title and then buries the actual function in infrastructure jargon. It never clearly states what the digest produces or what a GLEIF snapshot input is, so an agent cannot distinguish this from other GLEIF/ChainGraph siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bulk of the text explains compute-mode mechanics (auto/server/browser) but gives no guidance on when to choose this tool over siblings such as build_chaingraph, emit_chaingraph_artifact, or other GLEIF/LEI tools. There is a privacy rule ('use synthetic or anonymised inputs only') but no positive usage context or exclusions.
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 DispositionCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("dispose_carf_status_message").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, logged, or retained, that compute:"browser" returns a delegation URL instead of executing, and that an AP2 artifact with execution_hash is exported for chain provenance. These are real behavioral traits an agent needs, though the compute-mode detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the tool identity but immediately repeats itself ("OpenChainGraph compute node" appears twice) and spends substantial length on boilerplate provenance (URL, FV-status hash file) that competes with the functional content. Nothing is actively misleading, but the signal-to-noise ratio is mediocre.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers execution/transport behavior and provenance but delegates output shape to describe_tool and field names to "the tool's manifest." The functional decision the tool makes and the content of the exported artifact remain undefined, which is a meaningful gap for a compliance tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 chain-parenting semantics of parent_hashes/parent_tool_ids. The description adds nothing parameter-specific beyond repeating the compute-mode behavior, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a "CARF Status Message Disposition" compute node but never says what the disposition actually determines or produces functionally. Almost all of the text describes generic OpenChainGraph infrastructure (compute modes, delegation, provenance hashing) that would apply to any node in the family, leaving the substantive purpose to be inferred 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.
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 selection guidance. There is no stated condition for choosing this tool over siblings such as classify_carf_reportable (its upstream) or other disposition/classification tools.
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 BuilderCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, and the description adds real operational context beyond them: transient processing with no storage/logging/retention, synthetic-input guidance, and the server-vs-browser delegation semantics including gpu:true always delegating. That is meaningful disclosure the schema and annotations don'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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated: it repeats 'Deterministic OpenChainGraph compute node' immediately after the title, embeds a long opaque FV-status URL, and ends with a rambling clause about snapshots and offline receipts that does not help tool selection. Purpose is not front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does cover compute modes, provenance chaining, and data handling, which is adequate. However it omits the plain-language function of the tool and its relationship to the other AP2 builder siblings, leaving a gap an agent would need.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 reinforces chaining from upstream artifacts and compute mode but adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and 'OpenChainGraph compute node (payment_policy)' point at an AP2 mandate credential flow, and 'Exports an AP2 artifact with execution_hash' hints at the output, but the description never plainly states it drafts/builds an AP2 mandate credential as a verb+resource, and it does not distinguish itself from close siblings like build_google_ap2_mandate, build_ap2_cartmandate_hashchain, or ap2_aml_mandate_builder. The reader must infer the core purpose from jargon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives compute-mode behavior (auto/server/browser) and names upstream/downstream artifacts, which is context, but there is no when-to-use-this-vs-alternative guidance against the many sibling AP2 builders. Nothing tells the agent which of the several mandate-building tools to select.
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 envelopeARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute 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_id | No | ChainGraph 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_hashes | No | execution_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_ids | No | tool_ids corresponding to parent_hashes, in the same order. | |
| policy_parameters | No | Input 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_artifact | No | A 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
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.
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.
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.
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.
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.
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_ai_token_spendAI Token SpendBRead-onlyIdempotentInspect
AI Token Spend: 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-704-ai-token-spend.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("estimate_ai_token_spend").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it readOnly/idempotent/non-destructive, but the description adds genuinely non-schema behavior: inputs are processed transiently and not stored, logged or retained, execution is deterministic, and the export is an AP2 artifact with execution_hash for chain provenance plus an offline-verifiable receipt. These are substantive disclosures beyond the annotations, though the compute-mode sentences merely restate the schema enum.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens by restating the name, then repeats the classification twice ('OpenChainGraph compute node' / 'Deterministic OpenChainGraph compute node'), and closes with a large URL plus a 64-character FV-status hash path that consume substantial space. Front-loading is poor and several sentences duplicate structured fields rather than informing the caller.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, zero-required node with a nested policy_parameters object and no output schema, the description covers data handling and provenance export but outsources the actual computation semantics and the required input field names to 'the manifest' and describe_tool. It is adequate but leaves meaningful gaps about what values to pass and what to expect back.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 meanings are already fully documented in the schema. The description only re-describes the compute enum and otherwise defers to 'the tool's manifest' for field names, adding nothing beyond the schema — the baseline 3 for full coverage is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title state a verb+resource, but the description never actually says what 'AI token spend' estimation does or what it computes — it mostly describes infrastructure ('OpenChainGraph compute node', 'deterministic', compute modes). An agent learns the category and the shipping mechanism, not the tool's function, and there is no differentiation from the large family of 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides one real usage constraint ('Use synthetic or anonymised inputs only') and explains when server vs browser execution applies, which is useful context. However it gives no when-to-use/when-not guidance relative to siblings and no prerequisites beyond the data-handling caveat.
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 EstimatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("estimate_cross_margin_benefit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: the auto/server/browser compute binding, that gpu:true nodes always delegate to the browser, that inputs are processed transiently and not stored, and that it exports an AP2 artifact with execution_hash. It omits any statement of permissions or expected latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense block that front-loads a regulatory deadline parenthetical, a bare URL, and a 64-character FV-status hash before the agent gets to compute-mode or output behavior. Several sentences (privacy boilerplate, offline-receipt verification) 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.
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 policy_parameters object, the description carries more burden, and it does cover compute behavior, data handling, provenance export, and chain position. It still never says what the estimation returns (e.g., a benefit number, netting ratio, or artifact fields), so an agent cannot predict the result shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 policy_parameters the definition defers to 'the tool's manifest for field names,' which is duplicated in the schema and leaves the actual decision inputs unspecified in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title ('FICC-CME Cross-Margining Estimator') signal a specific verb+resource, and the description labels it a risk_parameter compute node. However, it never explains what a cross-margining benefit estimate actually is or distinguishes itself from near-siblings such as estimate_ficc_margin_netting or estimate_cross_venue_margin_capital, which an agent would have to disambiguate on its own.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is one genuine constraint ('Use synthetic or anonymised inputs only') and positional context (consumes art-48-treasury-clearing-fit-diagnostic, feeds qfa-02/qfa-03), which implies where it belongs in a chain. But there is no explicit when-to-use/when-not guidance and no routing away from the closely related margin-estimation 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 EstimatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("estimate_cross_venue_margin_capital").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context: transient processing with no storage or logging, server-vs-browser compute delegation semantics for gpu:false/gpu:true nodes, and export of an AP2 artifact carrying execution_hash for provenance. It does not disclose the margin-model behavior itself, but the operational traits are well surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with duplicated framing ('OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node.') and then buried under URLs, an FV-status hash, and a describe_tool pointer. Little of this earns its place ahead of a plain statement of what the tool estimates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters object, the description must carry the domain burden, yet it says nothing about the margin/settlement computation, required input fields, or result shape. The infrastructure story is complete; the tool's actual semantics are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 text is largely redundant. The crux parameter, policy_parameters, remains opaque in both places ('see the tool's manifest'), so the description neither compensates nor adds meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 infrastructure boilerplate; it never explains what 'cross-venue margin capital' estimate actually produces or how it differs from close siblings like estimate_cross_margin_benefit, estimate_ficc_margin_netting, or optimize_settlement_capital. An agent learns the tool exists but not what 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.
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 directive-like statements ('use synthetic or anonymised inputs only') are input-hygiene rules, not selection guidance between this tool and its many margin/settlement siblings.
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 EstimatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("estimate_ficc_margin_netting").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint true and destructiveHint false, but the description adds genuinely useful behavior: deterministic compute, default server-side execution with compute:"auto", browser delegation for compute:"browser"/gpu:true, transient non-retained input processing, a synthetic-inputs-only constraint, and an AP2 artifact export with execution_hash. These are real operational 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description repeats the title as a prefix, then pads with a long FV-status hash, an offline-verification aside, a URL, and artifact-routing lists that do not help an agent select or invoke the tool. The compute/data-handling content is useful, but it is entangled with clearly non-earning sentences, so the definition is bloated rather than front-loaded and tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema, nested-object, artifact-chaining tool, the description covers execution modes, data-handling guarantees, chain provenance via execution_hash, and upstream/downstream artifact dependencies, and points to describe_tool for the output shape. The only shortfall is that policy_parameters contents are deferred to an external manifest rather than summarized.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 rule. The description restates compute modes and defers policy_parameters field names to "the tool's manifest," adding no syntax or meaning the schema does not already carry. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ("FICC Margin & Netting Estimator") and frames it as an "OpenChainGraph compute node (risk_parameter)," so the broad purpose is inferable. However, it never states what it actually computes or how it differs from close siblings like estimate_cross_margin_benefit, compute_multilateral_netting, or estimate_cross_venue_margin_capital. The functional verb is buried under provenance/metadata boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Consumption of upstream artifacts (art-48-treasury-clearing-fit-diagnostic, art-49-clearing-access-model-selector) and downstream feeds implies when in a workflow it belongs, giving contextual placement. But there is no explicit "use this when / not when" statement and no routing to alternative margin/netting tools, so the 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_decision_treeDeclarative Decision-Tree EvaluatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("evaluate_decision_tree").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/no-destructive, and the description adds genuinely useful behavior beyond them: determinism, transient processing with no storage/logging/retention, server vs browser execution split, browser delegation URL return, and an exported AP2 artifact carrying execution_hash for provenance. Some of this (the fv-status snapshot sentence) is more receipt boilerplate than actionable behavior, which keeps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence front-loads the role well, but the body is a dense run-on mixing compute modes, retention policy, artifact export, a documentation URL, and an fv-status receipt path with a 64-hex filename. The link and receipt-snapshot explanation do not help an agent decide or call the tool, so several sentences fail the 'earn its place' test.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers execution mode, side-effect profile, chaining inputs, and the provenance artifact, and explicitly points to describe_tool for the output schema. The remaining gap is that the actual decision result shape is never characterized, only offloaded.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 semantics and notes that the delegation URL is returned, but adds little about parent_hashes ordering or what fields policy_parameters should contain 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete operation and resource ('Declarative Decision-Tree Evaluator', OpenChainGraph compute node for compliance_mandate) and states that policy_parameters feed a decision function, so an agent knows it runs a deterministic decision tree rather than a chain or workbook. However, it never distinguishes itself from compute-ish siblings (workbook_evaluate, run_chain, evaluate_globe_*), and the verbose compute plumbing crowds out what the tree actually decides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real but partial guidance: 'Use synthetic or anonymised inputs only', and explains when each compute mode applies (auto/server/browser, gpu:true always delegates). There is no when-to-use-this-vs-alternative routing against any of the many sibling evaluators, so the agent must infer fitness from the node 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_de_minimis_exclusionGloBE Permanent De Minimis Exclusion EvaluatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("evaluate_globe_de_minimis_exclusion").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context: transient processing with no storage, logging, or retention, and export of an AP2 artifact with execution_hash for chain provenance. It still omits what the evaluation returns or any thresholds, so it is not fully transparent, but it 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with internal infrastructure prose, an external URL, and a long FV-status hash path that contribute nothing to tool selection. Front-loading the name is the only structural virtue; the size and noise far exceed what the task requires.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-parameter compliance decision node with a nested policy_parameters object and no output schema, the description should convey what the decision does and what a verdict looks like; instead it defers entirely with 'call describe_tool'. The core semantic content is missing even though operational/retention details are covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only echoes the compute-mode semantics and gives no additional interpretation of policy_parameters or the decision fields, so it meets the baseline rather than adding value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool and its domain (GloBE de minimis exclusion), but never states what the evaluation actually determines or what a caller gets back; it mostly restates the title and then pivots to infrastructure boilerplate. It also fails to distinguish itself from the many GloBE-siblings (evaluate_globe_safe_harbour_tests, compute_globe_jurisdictional_etr, compute_globe_sbie_topup) that an agent could otherwise confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, prerequisites, or what input combination triggers the permanent de minimis test. The only contextual instruction is the per-parameter compute-mode text, which is not usage guidance 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.
evaluate_globe_safe_harbour_testsGloBE Transitional Safe Harbour Test EvaluatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("evaluate_globe_safe_harbour_tests").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/false open-world, but the description adds genuinely useful traits: deterministic compute, auto/server/browser execution modes with browser delegation (always for gpu:true), transient non-retained processing, and an exported AP2 artifact carrying execution_hash for chain provenance. That is real behavioral context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence front-loads the identity and the retention caveat and AP2 export are useful, but the middle is boilerplate runtime text and the trailing spec URL plus full FV-status hash path are heavy. Content mostly earns its place, but the structure is dense rather than crisp.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param node with a nested object and no output schema, the description covers execution mode, data handling, and provenance, and it correctly routes the agent to describe_tool for the output schema. It still leaves policy_parameters field names to an external manifest, so an agent cannot fully construct inputs from the definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already documented in the schema; the description's compute-mode passage largely restates it. It adds nothing about policy_parameters beyond deferring to 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state the resource (GloBE Transitional Safe Harbour tests) and the description labels it a 'compliance_control' compute node, so the agent knows it evaluates something. However, the description never says what the evaluation actually computes or returns - no mention of testing whether a jurisdiction qualifies for the transitional safe harbour. It describes the runtime plumbing rather than 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.
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 close siblings like evaluate_globe_de_minimis_exclusion, compute_globe_jurisdictional_etr, and compute_globe_sbie_topup. 'Use synthetic or anonymised inputs only' is a data-handling caveat, not usage guidance.
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 EvaluatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("evaluate_irrbb_sot_eve").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context: deterministic execution, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for provenance. That chaining and data-handling behavior is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long and front-loads a restatement of the name/title, then mixes kernel/compute mechanics, artifact IDs, an FV-status file path and a URL that are largely noise for tool selection. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex chained compute node with no output schema and all-optional parameters, the description does cover artifact export, provenance chaining and the delegation to describe_tool for the output schema. What it lacks is any explanation of the decision function itself and of what policy_parameters should contain, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 adds nothing about parameter semantics beyond what the schema provides (it even repeats the compute-mode semantics), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description establishes that this is a deterministic OpenChainGraph compute node and locates it in a chain (upstream art-183-irrbb-eve-shock-calculator, downstream art-185-irrbb-sot-nii-evaluator), which does help separate it from siblings like evaluate_irrbb_sot_nii. However, it never states what the IRRBB SOT EVE evaluation actually computes; the core verb+resource is only in the name/title, so an agent learns more about infrastructure than about the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only genuine usage constraint is 'Use synthetic or anonymised inputs only,' which is valuable. There is no statement of when to prefer this tool over alternatives such as calculate_irrbb_eve_shocks or evaluate_irrbb_sot_nii, and the compute-mode text is a mechanic restated from the schema 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.
evaluate_irrbb_sot_niiIRRBB SOT NII EvaluatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("evaluate_irrbb_sot_nii").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral facts: transient processing with no storage/logging/retention, determinism, the auto/server/browser execution split with Cloudflare Workers delegation, preferred-browser delegation for gpu:true, and export of an AP2 artifact with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but the text is padded with low-value operational boilerplate: a raw URL, an FV-status hash, and the aside about the receipt being 'a snapshot, not a subscription' that verifies offline. The compute-mode explanation duplicates the schema verbatim, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema it points the agent to describe_tool, describes the AP2 artifact/execution_hash it exports, and covers chaining and data-handling. But the actual policy_parameters payload shape — the core input for a 4-param decision function — is left to an external manifest, which is a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 semantics and the parent_hashes/parent_tool_ids pairing; the description mostly restates rather than extends that. It adds no field names for policy_parameters, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('IRRBB SOT NII Evaluator', a compliance_mandate compute node) and names its upstream counterpart (art-184-irrbb-sot-eve-evaluator, i.e. evaluate_irrbb_sot_eve), so an agent can separate it from the EVE variant. However it never explains what the NII supervisory-outlier computation actually decides, leaving the domain purpose partly opaque.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It discloses a hard input constraint ('Use synthetic or anonymised inputs only') and an upstream prerequisite ('Consumes upstream artifacts from: art-184-irrbb-sot-eve-evaluator'), which implies a workflow. It gives no explicit when-to-use/when-not guidance versus siblings like evaluate_irrbb_sot_eve or run_irrbb_disclosure_fit, so routing 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.
examine_lc_document_presentationUCP 600 / ISBP 745 Document Examination AssemblerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("examine_lc_document_presentation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine context beyond them: deterministic execution, transient processing with no storage/logging, and an exported AP2 artifact carrying execution_hash. However, the compute-mode text merely duplicates the schema's own parameter description, and nothing is said about what the examination actually evaluates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with infrastructure boilerplate, a documentation URL, a full FV-status hash path, and a redirect to describe_tool for the output schema. Only the first clause conveys purpose; the rest is plumbing that crowds out what an agent actually needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters, a free-form nested policy_parameters object, and no output schema, the description leaves the agent unable to determine what examination inputs to supply — it defers to an external manifest. It does point to describe_tool for the output schema, but the input side of a compliance examination tool remains opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented in the schema and explicitly defers policy_parameters field names to 'the tool's manifest', 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name convey the domain purpose (UCP 600 / ISBP 745 document examination) but the description body itself is almost entirely compute-plumbing boilerplate and never states in domain terms what the examination does or produces. It also fails to distinguish this from LC-adjacent siblings such as validate_mt700_lc_fields, check_digital_trade_rules, or verify_trade_document_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 guidance given concerns compute modes (auto/server/browser), which is parameter behavior rather than tool-selection advice.
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 ExplainerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("explain_regrpt_variance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds meaningful behavioral context beyond that: compute modes (server vs. browser delegation), transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash for chain provenance. This is useful disclosure for correct invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with boilerplate about OpenChainGraph, compute binding, privacy, an external URL, and a raw FV-status JSON file path. The actual purpose is front-loaded only as a title restatement, while critical details (what policy_parameters should contain, what the output looks like) are absent. Many 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has four parameters, a nested policy_parameters object, and no output schema, yet the description defers all meaningful detail to describe_tool('explain_regrpt_variance') and the tool's manifest. It never explains what policy_parameters fields are expected or what the variance explanation returns, leaving an agent unable to invoke it confidently without probing further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 mode and parent_hashes semantics. The description adds no extra parameter meaning beyond what the schema provides; it only repeats the compute mode explanation and does not clarify the opaque policy_parameters object. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description's first line merely repeats the tool's title ('Regulatory Report Period-over-Period Variance Explainer') and then calls it a 'deterministic OpenChainGraph compute node'. It never states what the variance explanation actually does or what kind of output it produces. This is tautological restatement rather than a specific verb+resource definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a constraint ('Use synthetic or anonymised inputs only') but no guidance on when to use this tool versus alternatives in the large regulatory-reporting sibling set (e.g., run_regrpt_edit_checks, compute_regulatory_obligations_register). There is no explicit when-to-use or when-not-to-use context.
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 / vcARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| format | Yes | Export profile. xlsx/csv/pdf/xbrl/vc implemented; vc = W3C Verifiable Credentials 2.0 (base profile, all nodes). | |
| artifact | Yes | Full v0.4 ChainGraph artifact (policy_parameters + output_payload + execution_hash + chain). | |
| xbrl_taxonomy | No | Required only when format="xbrl" (e.g. "eba-corep-own-funds"). |
TDQS
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.
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.
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.
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.
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.
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 chainARead-onlyIdempotentInspect
BM25 search over all 374 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".
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-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_n | No | Max results to return (default 5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld=false), so the bar is lower. The description adds real context beyond them: the corpus size, the ranking method, and exactly what the response contains (ordered node sequence, deep-links, composer URL, entry tool mcp_name), which is valuable since there is no output schema. It omits edge behavior such as empty-result handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then returns, then workflow, then query examples. Every sentence is functional, though the example list is long; each example covers a distinct domain so the length is mostly justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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-value burden and does so well, plus it explains the downstream workflow needed to actually use a returned chain. Minor gaps remain around result limits/no-match behavior, but nothing essential to a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 over the schema by characterizing what makes a query effective (task-shaped phrasing) and supplying domain-flavored exemplars that go beyond describing the field's type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and mechanism (BM25 search) over a named, quantified resource (374 AINumbers ChainGraph chains). An agent can tell this is a discovery/retrieval tool distinct from execution tools, though no sibling (e.g. find_tool, run_chain) is called out by name, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a concrete agent flow (find_chain -> read recipe -> call node MCP tools in order, passing parent_hashes) and advises the query style that works best, with several worked examples. It stops short of 5 because it never states when NOT to use this tool or names an alternative for those cases.
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 ArbitrageBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("find_prediction_arbitrage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context beyond them: transient non-retained processing, server-vs-browser execution semantics, and AP2 artifact export with execution_hash for chain provenance. That is substantive disclosure, though the delegation/chain behavior could be tighter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens by restating the title verbatim, then packs in URLs, a hash path, a spec-status snapshot note, and boilerplate about Cloudflare Workers. Several sentences are infra boilerplate rather than decision-relevant, and the front-loading is wasted on a name repeat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, no-required, nested-object tool with no output schema, the description covers compute behavior, retention posture, and artifact export, but it omits what the decision function returns (arbitrage findings) and punts policy_parameters semantics to an external manifest. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 defers policy_parameters field names to 'the tool's manifest', adding little beyond the structured fields — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title make the intended outcome obvious (finding prediction-market arbitrage), and the description names the kernel ('event_market_pnl'). But it never describes what the arbitrage computation actually yields, and it does not distinguish itself from the sibling analyze_prediction_market, leaving purpose only partially specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives genuinely useful guidance on compute mode selection ('auto' vs 'browser' vs gpu:true delegation) and warns to use synthetic/anonymised inputs. However, it offers no when-to-use-vs-alternative routing, which matters given a near-identical sibling like analyze_prediction_market.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_runway_goal_pathRunway Goal PathBRead-onlyIdempotentInspect
Runway Goal Path: 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-702-runway-goal-path.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("find_runway_goal_path").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already cover readOnly/idempotent/non-destructive), the description discloses substantial behavioral context: server-side Cloudflare Workers execution for gpu:false nodes with registered kernels, browser delegation for gpu:true, transient processing with no storage/logging/retention, and an AP2 artifact with execution_hash for provenance. This is well past 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded but wastes its first sentence restating the title ('Runway Goal Path: OpenChainGraph compute node... Deterministic OpenChainGraph compute node'). The long FV-status hash and URL consume significant space relative to their decision 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.
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 no output schema, the description covers the execution and provenance model well but never describes the actual computed result, instead deferring to describe_tool for the output schema. The decision output an agent should expect remains unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 sentence duplicates the schema's own enum description and adds no field-level meaning; the manifest reference for policy_parameters adds nothing concrete. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 family, which distinguishes it from generic utilities, but it never states what find_runway_goal_path actually computes. The opening line largely restates the title, and the real purpose ('decision function') is deferred to 'the tool's manifest.' An agent learns the execution model 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a concrete directive ('Use synthetic or anonymised inputs only') and a clear explanation of the compute modes, which implies how to invoke it. However, there is no when-to-use/when-not guidance and no routing to or away from any of the many sibling compute_* and *_fit tools, so selection among alternatives 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.
find_toolFind ChainGraph node toolARead-onlyIdempotentInspect
BM25 search over all 669 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).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Natural-language or keyword search (e.g. "FRTB", "XVA", "MiCA own funds", "AML risk rating", "stress test", "reserve composition", "2052a", "initial margin", "model validation"). | |
| top_n | No | Max results to return (default 5). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, closed-world, and non-destructive behavior. The description adds useful behavioral context beyond them: scale (669 tools), ranking method (BM25), and the fields returned (mcp_name, URL, mandate type, wave).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core operation and includes a long but useful list of example queries. It is not padded with irrelevant text, though the examples sentence is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 usefully names the return fields. For a simple search tool with rich annotations and full schema coverage, this is sufficient, though it does not elaborate on ranking details or result stability.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents query and top_n. The description supplies example query strings but adds no additional syntax, format, or semantic detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: BM25 search over ChainGraph node tools. It also distinguishes itself from siblings by naming find_chain and list_ainumbers_tools as chain-level and catalog-level alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit when-to-use guidance: locate a specific computation node before calling it. It also names the alternatives (find_chain, list_ainumbers_tools) and the scope each covers, leaving nothing to inference.
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 GeneratorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("generate_attribution_string").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, and the description adds genuinely new behavioral context: transient processing with no storage/logging/retention, server-side vs browser delegation semantics, and the exported artifact's execution_hash provenance. These go beyond the schema and annotations, though the compute-mode detail overlaps the schema's own description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated and poorly front-loaded: it leads with repetitive meta-framing ('OpenChainGraph compute node' twice), then embeds a URL, a full SHA-256 FV-status filename, and a snapshot disclaimer before any actionable content. Much of this is noise for an agent trying to decide whether to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers the output contract to describe_tool('generate_attribution_string') rather than explaining it, which is a gap for a tool whose product is an exported artifact. Privacy, compute routing, and provenance chaining are covered, but the actual return shape and the meaning of policy_parameters remain under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 text instead of adding new semantics such as policy_parameters field names (it explicitly defers to 'the tool's manifest'), so it does not exceed the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool as an 'OpenChainGraph compute node (compliance_mandate)' and says it exports an AP2 artifact with execution_hash, but never explains what an 'attribution string' actually is or what the computation produces. The core purpose is essentially restated from the title, forcing the agent to infer the tool's real function from schema and naming conventions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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) in detail, but gives no guidance on when to use this tool versus the many sibling generators (e.g. emit_chaingraph_artifact, build_chaingraph, export_artifact). The only usage instruction is 'Use synthetic or anonymised inputs only,' which is a constraint, 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.
generate_iscc_codeISCC Content Code GeneratorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("generate_iscc_code").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful non-schema behaviour: transient processing with no storage or logging, server-vs-browser delegation semantics, gpu:true always delegating, and an execution_hash for chain provenance. It stops short of describing response shape or failure modes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on that embeds a literal URL and a 64-character FV-status hash path, which is noise for tool selection. The actionable parts (compute modes, transient-input warning, downstream feed) are buried rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with 4 params including a free-form nested object and no output schema, the description does cover execution modes, non-retention, and artifact export. However it fails to explain the primary return value (the ISCC code itself) and defers to describe_tool for the output shape, so an agent still lacks a self-contained picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 description largely repeats that. It adds no detail on policy_parameters field names beyond pointing to the manifest, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads by restating the name/title ('ISCC Content Code Generator: OpenChainGraph compute node') rather than stating plainly that it derives an ISCC content code from policy_parameters. The only functional signal is the aside about exporting an AP2 artifact and feeding art-202-tdmrep-reservation-builder, so an agent can infer the domain but not exactly what is produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It does differentiate compute:'auto'/'server'/'browser' behaviour and specifies the downstream consumer (art-202-tdmrep-reservation-builder), and it warns to use synthetic or anonymised inputs only. But it never states when to choose this tool over siblings, nor prerequisites for chaining (parent_hashes/parent_tool_ids pairing is left to the schema).
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 GeneratorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("generate_zk_compliance_proof").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive/non-open-world safety, and the description adds substantial behavior beyond them: compute-mode resolution, gpu:false vs gpu:true delegation semantics, transient processing with no storage/logging/retention, and deterministic execution_hash export. This is meaningful operational 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is repetitive ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and the passage is dense with internal vocabulary (FV-status, AP2, compute binding) that crowds out the core purpose. Several clauses (the /fv-status receipt URL, the 'snapshot, not a subscription' aside) add little for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no output schema, and prior annotations, the description covers execution mode, chaining inputs, privacy handling, and artifact output, and points to describe_tool for the output schema. Most of what an agent needs to invoke it correctly is present, though the core proof semantics remain under-explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters). The description restates the compute default and the chain.parent_hashes side effect, adding only marginal value over the schema, which matches the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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) that exports an AP2 artifact with execution_hash. However, it never plainly states in its own words what the ZK compliance proof actually computes or proves; the agent must infer the core purpose from the name and the artifact/chain vocabulary. It distinguishes the resource but the verb ('generate proof') is buried in jargon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an input-hygiene rule ('use synthetic or anonymised inputs only') and explains compute modes, but never states when to select this tool over alternatives, nor names a competing sibling. The referenced IDs (art-10..., cry-04..., ptg-01...) are upstream/downstream chain links, not alternative selections.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| sd_jwt | No | When true, also return an SD-JWT export of the bundle (default false). | |
| records | No | human_accountability_records over this subject. Default: []. | |
| input_hashes | No | sha256: hashes of the inputs the verification ran over. Default: []. | |
| subject_hash | Yes | Required. The sha256: subject hash the bundle documents. | |
| kernel_version | No | Version tag of the kernel that produced verification_result. | |
| policy_version | No | Version tag of the policy the kernel was evaluated against. | |
| submission_receipt | No | Populate ONLY after a real transmission -- never fabricate. | |
| verification_result | No | The §16/§18/§20 verdict. |
TDQS
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.
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.
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.
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.
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.
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 preconditionARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | The haRole a satisfying approval record must carry. | |
| now_iso | Yes | Caller-supplied ISO 8601 clock (determinism; never Date.now() internally). | |
| records | No | Collected human_accountability_records over this subject. Default: []. | |
| threshold | No | N for dual_control/review_required/hold. Default 1 (2 for dual_control). | |
| gate_policy | Yes | The step's declared haGatePolicy. | |
| subject_hash | Yes | The sealed artifact's sha256: subject hash. | |
| require_conformant | No | Require §27.2 structural signature shape on every record (default true). |
TDQS
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.
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.
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.
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.
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.
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 recordARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| record | Yes | A single human_accountability_records[] entry to check. |
TDQS
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.
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.
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.
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.
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.
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 & ReadinessBRead-onlyIdempotentInspect
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). Output schema: call describe_tool("inspect_visa_tap_signature").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool as readOnly, idempotent, and non-destructive, so the safety profile is covered. The description adds valuable behavioral context: it renders an interactive AINumbers widget, applies inputs via the AIN Bridge, and runs client-side with zero PII and zero network. This clearly communicates how the tool executes beyond what annotations provide, though it doesn't detail behavior on invalid signatures or scoring specifics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose, followed by behavioral details and a note about output schema. The 'Output schema: call describe_tool(...)' instruction is unusual and somewhat meta, but it is short and does not bloat the description. Every sentence earns its place, though the output-schema reference could be clearer.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description must explain what the tool returns or at least describe its output characteristics. Instead, it directs the agent to call describe_tool, which is an extra step and not a substitute for describing the return value. For a tool that inspects signatures and produces a readiness score, the lack of output details and scoring criteria leaves the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 single 'inputs' object. The description adds the AIN Bridge prefill mechanism and client-side execution context, which slightly extends the schema's meaning. However, it doesn't explain the actual input element IDs or their semantic roles beyond the schema's reference to the manifest, so the added value is limited.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb and resource: 'Inspect a Visa Trusted Agent Protocol HTTP Message Signature and score TAP readiness.' This is specific and informative. However, it does not explicitly differentiate from the closely named sibling 'inspect_visa_trusted_agent_protocol', so an agent might be unsure which to pick without deeper investigation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to inspect signatures and score readiness, but it provides no explicit guidance on when to choose this tool over alternatives like 'inspect_visa_trusted_agent_protocol' or other validation tools. There are no conditions, exclusions, or context about when this tool is the right fit, leaving the agent to infer usage.
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 InspectorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("inspect_visa_trusted_agent_protocol").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/local, and the description adds genuinely useful behavior beyond that: auto/server/browser compute delegation rules, transient non-stored input handling, and an exported AP2 artifact carrying execution_hash for provenance. It does not state auth or rate-limit requirements, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is bloated with infra boilerplate — the phrase 'Deterministic OpenChainGraph compute node' is repeated, plus a URL, an FV-status receipt hash, and a list of upstream/downstream artifact IDs that crowd out the core purpose. Content is front-loaded but never gets to the actual semantic function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers compute modes, data handling, artifact chaining and points to describe_tool for the output schema, which is adequate infrastructure-wise for a zero-required-param compute node. It is nonetheless incomplete on the one thing an agent most needs: what the TAP signature inspection evaluates and returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 echoes those (compute-mode behavior, chaining from upstream artifacts) rather than adding syntax or format meaning the schema omits, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and the label 'OpenChainGraph compute node (compliance_control)' identify the domain, but the body never explains what 'inspecting a Visa TAP signature' actually does — it opens with a near-verbatim restatement of the name/title. No differentiation from the sibling inspect_visa_tap_signature, leaving the agent to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is the constraint 'Use synthetic or anonymised inputs only.' There is no statement of when to choose this node versus its near-duplicate sibling or the many other inspect_*/verify_* tools, and no prerequisites are mentioned.
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 linksARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| run_chain_result | Yes | The structuredContent object returned by run_chain (must include chain and steps[]). |
TDQS
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.
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.
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.
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.
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.
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 fetchARead-onlyInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| lei | Yes | 20-character ISO 17442 Legal Entity Identifier to look up. |
TDQS
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.
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.
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.
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.
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.
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.
link_eudr_supply_chain_traceabilityEUDR Supply-Chain Traceability LinkerCRead-onlyIdempotentInspect
EUDR Supply-Chain Traceability Linker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the 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-168-eudr-country-benchmark-risk-scorer. Output feeds: art-170-eudr-readiness-diagnostic. Open at: https://ainumbers.co/chaingraph/art-169-eudr-supply-chain-traceability-linker.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("link_eudr_supply_chain_traceability").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, an AP2 artifact with execution_hash is exported for chain provenance, and browser mode returns a delegation URL instead of a result. It also confirms the closed-world/synthetic-input posture. Some of the compute-mode text duplicates the schema, but the retention and artifact-provenance disclosures exceed 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with infrastructure boilerplate: a repeated 'compute node' refrain, a full FV-status hash URL, and a sentence about offline receipt verification that no agent calling this tool needs. The title is restated verbatim, and the actionable content is scattered rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 point to describe_tool for the output shape and explains the AP2 artifact export, which partially covers the return contract. However, the undocumented policy_parameters field names and the vague notion of what is being 'linked' leave an agent guessing at the core computation for a nested-object tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's compute-mode paragraph is largely redundant. Critically, policy_parameters — the actual decision inputs — is an open object whose field names the description defers to 'the tool's manifest,' adding no semantic detail where it would be most valuable. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name give a topic ('EUDR supply-chain traceability linker'), and the description names its upstream artifact (art-168 risk scorer) and downstream consumer (art-170 readiness diagnostic). But it never states what the computation actually does — what a 'link' is, what it derives, or what policy_parameters it accepts. The purpose is inferred from artifact plumbing rather than stated as 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.
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 like run_eudr_readiness_fit, validate_eudr_due_diligence_statement, or classify_eudr_commodity_scope. The only directive is 'Use synthetic or anonymised inputs only,' which is a constraint, not routing guidance. Compute-mode selection is parameter behavior, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
link_traceability_lot_codeFSMA 204 Traceability Lot Code Chain LinkerBRead-onlyIdempotentInspect
FSMA 204 Traceability Lot Code Chain Linker: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the 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-118-fsma204-cte-validator. Output feeds: art-120-recall-trace-resolver. Open at: https://ainumbers.co/chaingraph/art-119-traceability-lot-code-linker.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("link_traceability_lot_code").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent safety, and the description adds genuinely new behavioral facts: transient processing with no storage/logging/retention, server-vs-browser kernel execution, and an AP2 artifact carrying execution_hash for provenance. It stops short of describing return shape or failure modes, but the non-storage guarantee and delegation semantics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode paragraph is front-loaded effectively, but the text repeats boilerplate ('OpenChainGraph compute node' twice), embeds a 64-character FV-status hash URL block, and carries redundant 'deterministic' framing. Much is informative, yet a sizable fraction does not earn its place for an invoking agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param read-only compute node with full schema coverage, the description supplies the missing pieces an agent needs: chaining inputs/outputs, compute delegation rules, and data-handling guarantees. The main gap is that, with no output schema, it defers return-value explanation entirely to describe_tool, leaving the caller to make a second call to learn the shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 essentially restates what the schema already documents (compute modes, parent_hashes as upstream execution_hash values), and for policy_parameters it just defers to 'the tool's manifest' as the schema does. No syntax or format detail beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names the resource domain (FSMA 204 traceability lot code) but the operative verb is opaque: 'chain linker' is never explained in functional terms, so an agent cannot tell what it actually computes or produces. It does distinguish itself via artifact IDs (art-118 upstream, art-120 downstream), which helps against siblings somewhat. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Position in the chain ('Consumes upstream artifacts from art-118-fsma204-cte-validator; Output feeds art-120-recall-trace-resolver') implies when it runs, and 'use synthetic or anonymised inputs only' gives a constraint. But there is no explicit when-to-use vs. alternatives such as validate_fsma204_cte or resolve_recall_trace, 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.
lint_ab2013_training_data_disclosureAB 2013 Training Data Disclosure LinterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_ab2013_training_data_disclosure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: deterministic execution, server-vs-browser delegation rules, transient processing with no logging/retention, the 'synthetic or anonymised inputs only' constraint, and an AP2 artifact with execution_hash for provenance. That is real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loading is fine, but the body is dominated by boilerplate: delegation mechanics, a 64-hex FV-status filename, a raw URL, and an instruction to call describe_tool for the output schema. Only the data-handling and chaining sentences earn their place, so the signal-to-noise ratio is poor for a one-purpose linter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no output schema, and 0 required parameters, the description explains plumbing but not the compliance substance: which AB 2013 disclosure fields get validated, what a failing result contains, or what must be supplied. Deferring field names to an off-tool manifest leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 repeats the compute-mode semantics and says only 'See the tool's manifest for field names' for policy_parameters, adding no field-level meaning of its own.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence essentially restates the title ('AB 2013 Training Data Disclosure Linter') and appends a category label ('OpenChainGraph compute node (compliance_mandate)'). It never says what the linter actually checks, what a valid vs. invalid disclosure looks like, or how it differs from the many sibling linters (lint_aiuc1_control_evidence, lint_mcp_tool_definition, etc.). Tautological rather than explanatory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no named alternatives among the large sibling set of linters and fit diagnostics. The only 'when' content is operational (compute:'auto' vs 'browser'), which is invocation mechanics, not tool selection. An agent cannot tell from this text when this linter 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_aiuc1_control_evidenceAIUC-1 Control Evidence LinterBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_aiuc1_control_evidence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: compute:'auto' vs 'server' vs 'browser' execution, gpu:true nodes always delegating, transient non-stored/non-logged processing, and export of an execution_hash-bearing AP2 artifact. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single dense paragraph front-loads a generic identifier ('OpenChainGraph compute node') before the useful content, repeats 'deterministic ... compute node', and embeds a long URL and hash string that consume space without helping invocation. Functional but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-output-schema lint tool it covers execution mode, data handling, artifact export, and downstream consumer, which is reasonable. It omits what a lint result/finding looks like and defers return-shape discovery to describe_tool, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the enum semantics of 'compute', parent_hashes/parent_tool_ids linking, and policy_parameters are already fully documented in the schema. The description restates the compute-mode behavior but adds no syntax 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.
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 'AIUC-1 Control Evidence Linter' and the description says it exports an AP2 artifact and feeds art-304-aiuc1-evidence-pack-assembler. However, the body is dominated by OpenChainGraph compute-node mechanics rather than stating what the lint actually validates, so the agent must infer the purpose from the name plus 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.
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 many sibling linters (lint_ab2013_training_data_disclosure, lint_mcp_tool_definition, etc.). The only usage-like guidance is 'Use synthetic or anonymised inputs only,' which is a data-handling constraint, 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.
lint_arc_xreserve_configArc xReserve Config LinterCRead-onlyIdempotentInspect
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. Date basis: deadline 2026-07-18 is the GENIUS Act §13(a) implementation rulemaking date and was missed (kept as the historical rulemaking date, not corrected to a live date); the GENIUS Act federal framework effective date under §20 is 18 Jan 2027. The two dates are distinct.). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_arc_xreserve_config").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: the compute-mode delegation model (server for gpu:false, browser URL for gpu:true), transient processing with no storage/logging, the 'synthetic or anonymised inputs only' constraint, and AP2 artifact export with execution_hash. It stops short of describing what the lint emits or what it validates, and defers output shape to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated and back-loaded with governance meta (regulatory-date caveats about §13(a) vs §20, a raw FV-status receipt hash, a documentation URL) before the reader learns anything about the operation. Several sentences are tangential rather than earning their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with a nested object and no output schema, the description should explain what is validated and what the artifact/result contains. Instead it defers the output to describe_tool and the input field names to an external manifest, leaving the core lint semantics and return shape unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 discussion largely restates the enum's own description, and it explicitly punts field names to 'the tool's manifest', adding no real semantics beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title plus the regulatory framing (GENIUS Act §4 eligible-asset backing, MiCA Art. 54 reserve requirements) let an agent infer this validates an 'Arc xReserve' configuration for reserve-backing compliance, and the regulatory angle does help separate it from siblings like check_genius_reserve_disclosure. But the description never states plainly what the lint operation checks or produces; the actionable 'verb+resource' lives almost entirely in 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.
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 routing to alternatives such as check_genius_reserve_disclosure, check_mica_reserve_disclosure, or run_arc_fit_diagnostic. The only indirect hint is that it consumes upstream artifacts from art-42-arc-fit-diagnostic, which implies a pipeline 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.
lint_authorization_payloadAuthorization Payload LinterBRead-onlyIdempotentInspect
Authorization Payload Linter: 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-590-x402-eip712-digest-recomputer, art-612-erc2612-permit-binding-verifier, art-614-eip7702-authorization-tuple-decoder. Open at: https://ainumbers.co/chaingraph/art-700-authorization-payload-linter.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_authorization_payload").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic execution, transient input processing with no storage/logging/retention, compute delegation semantics, and an exported AP2 artifact carrying execution_hash for chain provenance. This is useful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
No — see justification: the text is dominated by infrastructure boilerplate, a documentation URL, and a long FV-status snapshot path that adds no calling guidance, so signal is diluted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It usefully points to describe_tool for the output schema and discloses compute/provenance behavior, but leaves the lint semantics and the contents of policy_parameters unexplained. For a tool whose decision function inputs are opaque, that is a meaningful gap even accounting for the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explanation largely restates the schema's own 'compute' description text. The most consequential parameter, policy_parameters, is explicitly deferred to 'the tool's manifest for field names', and the description does nothing to compensate for that ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line names a verb and resource ('Authorization Payload Linter') and identifies it as an OpenChainGraph payment_policy compute node, but the description never states what the lint actually checks. The downstream-feed list (x402 EIP-712 digest recomputer, ERC-2612 permit binding verifier, EIP-7702 authorization tuple decoder) hints at the domain, but the agent must infer the actual purpose from plumbing prose rather than 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.
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, even though siblings like decode_eip7702_authorization_tuple, recompute_x402_eip712_digest, and verify_erc2612_permit_binding sit adjacent in the same domain. The only conditional language concerns compute mode ('auto' vs 'browser'), which is an execution detail, not tool selection.
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 LinterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_besu_settlement_contract").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: default server-side execution on Workers for gpu:false kernels, compute:"browser" returning a delegation URL, gpu:true always delegating, transient non-retained processing, and an AP2 artifact with execution_hash for provenance. That 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense boilerplate: node-type framing, an FV-status URL with a 64-character hash, and a pointer to describe_tool crowd out any statement of what the lint does. It is not front-loaded on the tool's actual function, so several sentences do not earn their place for a selection decision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a domain-specific lint tool with no output schema, the description should convey what rule set or contract aspects are validated, but it says nothing about the linting domain and defers everything to describe_tool. The compute/data-handling disclosure is thorough, but the tool's core semantics are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 schema's own enum description rather than adding format or constraint detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ("Besu Settlement Contract Linter: OpenChainGraph compute node") and then pivots almost entirely to infrastructure mechanics. It never states what the linter actually checks in a Besu settlement contract, so the specific verb+resource only exists in the name, and it does not distinguish itself from sibling linters like lint_settlement_orchestrator_conformance or lint_securities_settlement_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is compute-mode behavior and the caution to "Use synthetic or anonymised inputs only"; there is no when-to-use, no exclusions, and no named alternative among the many lint_* siblings. The "Output feeds: art-292-attest-settlement-orchestrator" line hints at downstream placement but is not actionable selection guidance.
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 ClassifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_cbom_structure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 useful behavior — server-vs-browser compute delegation, transient non-retention of inputs, and an exported AP2 artifact carrying execution_hash. However, all of this is generic node boilerplate rather than CBOM-specific behavior (validation rules, failure modes, what a lint verdict 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by boilerplate, an artifact URL, and a long FV-status receipt hash, none of which help an agent select or call the tool. The actual purpose is never front-loaded — the first content sentence is about compute-node internals.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a lint/classify tool the core input is a CBOM document, yet the description never says what the tool consumes, and policy_parameters defers field names to an external manifest. With no output schema, the description leans on 'call describe_tool(...)' instead of describing the result, leaving the agent without enough to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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:'auto' default, which duplicates the enum description, and adds no syntax or semantics beyond what the schema gives.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title indicate a CBOM structural lint plus CNSA-2.0 classification, but the description body never states the verb+resource itself — it opens with 'OpenChainGraph compute node (compliance_mandate)' and 'Deterministic OpenChainGraph compute node,' which restate plumbing rather than purpose. An agent can infer intent from the title, but the description does not distinguish this lint from siblings like lint_mcp_tool_definition or classify_blockchain_quantum_risk.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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-like guidance is the input-handling caveat 'Use synthetic or anonymised inputs only.' Nothing tells the agent what inputs to supply, when linting is appropriate, or which sibling to prefer for related checks.
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 LinterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_cbpr_structured_address").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, and the description adds genuine context: compute routing modes, transient/non-retained input processing, and the fact that an AP2 artifact with execution_hash is exported for chain provenance. These are behavioral traits not derivable from annotations. It stops short of describing the validation output or failure behavior, hence 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate (compute routing, Cloudflare Workers, FV-status receipt URL, describe_tool pointer) while the one thing an agent needs—what the linter validates—is absent. Several sentences do not earn their place relative to the tool's actual decision function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and four parameters including a free-form nested policy_parameters object, the description should explain the validation semantics or at least the expected input shape; instead it redirects to describe_tool and the manifest. Chain-provenance and compute behavior are covered, but the core linting contract is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute description verbatim in substance, and it says nothing about policy_parameters fields 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (CBPR+ structured address) and the action (lint) but only via restating the title, then pivots entirely to infrastructure framing ('OpenChainGraph compute node (compliance_mandate)'). It never says what the linter actually checks—which CBPR+/ISO 20022 address rules, fields, or failure modes—so it is not clearly distinguishable from siblings like lint_fedwire_structured_address or validate_pacs008_party_completeness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no statement of alternatives, and no condition distinguishing this from the many other lint_*/validate_* siblings. The only operative instruction is 'Use synthetic or anonymised inputs only,' which is an input constraint rather than selection guidance. The 'Output feeds: art-242-pacs008-party-completeness-validator' line hints at pipeline position but not invocation criteria.
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 LinterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_compelling_evidence_ce30_agentic").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 or retention; server-vs-browser compute dispatch rules including that gpu:true nodes always delegate; and an AP2 artifact export carrying execution_hash for chain provenance. That is real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single sprawling run-on block that embeds a 70-character FV-status hash and a URL, crowding out the purpose. Infrastructure detail (Cloudflare Workers, kernels, snapshot semantics) consumes most of the text while the actual linting behavior goes unstated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description defers return values to describe_tool, and it does cover compute modes, input handling, and provenance inputs. However, for a linter with 4 nested/optional params it never conveys what rules are applied or what a result contains, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's compute-mode explanation largely restates the schema's own compute description, and it does not illuminate parent_hashes/parent_tool_ids ordering or the policy_parameters contract beyond pointing at a manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first line identify it as an OpenChainGraph compute node for "Agentic Dispute CE3.0" evidence linting, but the description never says what the lint actually checks or what makes evidence "compelling." It is dominated by compute-mode and provenance boilerplate rather than the tool's decision function, and it does not distinguish itself from the many other lint_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 beyond an indirect hint that it consumes upstream AP2 artifacts from four named tools. The one imperative ("Use synthetic or anonymised inputs only") is an input constraint, not context for selecting 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.
lint_crypto_asset_whitepaperCrypto-Asset Whitepaper Linter (iXBRL)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_crypto_asset_whitepaper").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior: deterministic compute, server-side vs browser delegation depending on gpu/kernel registration, transient non-retention of inputs, and export of an AP2 artifact carrying execution_hash for provenance. It stops short of describing failure modes, rate limits, or what the artifact looks like on error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded title and domain are fine, but the body is padded with infrastructure boilerplate that is largely irrelevant to selecting or invoking this specific tool, including a full documentation URL and a 64-character FV-status hash. The closing 'Output schema: call describe_tool(...)' is a meta-instruction rather than description content, and the useful routing facts are buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 more, and it does name the returned AP2 artifact and execution_hash. But the single most important gap remains: an agent cannot know which fields to supply in policy_parameters, and the description points at an external manifest instead of resolving it. Chain context is present, but invocation-level completeness is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 enum and parent_hashes/parent_tool_ids semantics are already fully documented in the schema, and the description only restates the compute modes. Critically, the main payload parameter policy_parameters is opaque in both places ('See the tool's manifest for field names'), and the description does nothing to compensate for that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (lint a crypto-asset whitepaper against iXBRL/MiCA expectations), and the description adds chain placement: it consumes art-98-mica-casp-fit-diagnostic and feeds cry-04-merkle-batch-verifier. However, the body text never actually says what the lint checks or what a failing result means, so the task itself is carried by the title rather than explained. Distinguishable from the many lint_* siblings only by domain naming, not by an explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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') plus implicit routing from the upstream/downstream artifact chain, which tells the agent where this fits in a pipeline. But there is no explicit statement of when to choose this over an alternative linter or readiness diagnostic, and no prerequisites or trigger conditions are stated.
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 LinterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_fedwire_structured_address").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine extra behavior: deterministic compute, server-vs-browser delegation semantics, transient processing with no storage or logging, and an AP2 artifact carrying execution_hash for provenance. That data-handling and provenance detail is not derivable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with infrastructure boilerplate (compute binding, Cloudflare Workers, FV-status hash URL, 'snapshot not a subscription') rather than the tool's function. A large fraction of the text is generic platform prose that would be identical for hundreds of sibling tools and does not earn its place here.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers the actual input contract to 'See the tool's manifest for field names' and pushes return values to describe_tool(). Nothing tells the agent what a lint verdict contains or which policy fields matter, leaving the core contract underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the compute parameter is already fully documented in the schema, so the baseline is 3. The description restates the compute-mode semantics (duplicating the schema) but adds nothing 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The only statement of purpose is the title repeated verbatim ('Fedwire Structured Address Linter: OpenChainGraph compute node'), which is a tautology of the tool name. The description never says what the lint actually checks (structured vs unstructured address blocks, field ordering, character set, etc.) or how it differs from sibling sweep_fedwire_addresses. An agent cannot tell what output constitutes a pass/fail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no preconditions, and no mention of alternatives despite a closely related sibling (sweep_fedwire_addresses) and a downstream consumer (art-350-fedwire-address-sweep). The reader is left to infer invocation context entirely.
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 LintBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_insurance_evidence_freshness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description still adds real behavior: transient processing with no storage/logging/retention, server-vs-browser execution routing, and an AP2 artifact export carrying execution_hash for chain provenance. It also flags that the FV-status receipt is a snapshot rather than a subscription, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the text is padded with redundant boilerplate ('OpenChainGraph compute node' stated twice as 'Deterministic OpenChainGraph compute node') and a long opaque SHA-256 hash plus URL 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It correctly defers return values to describe_tool and covers compute routing, data handling, provenance export, and upstream dependency. The notable gap is the opaque policy_parameters object: the actual decision inputs the lint needs are not described anywhere in the definition, only pointed at via the manifest, so an agent cannot construct a meaningful call from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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's compute-mode explanation largely restates the enum description, and it only adds a pointer that policy_parameters field names live in the tool manifest, without enumerating them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title establish a specific verb+resource (lint AIUC-1 insurance evidence freshness) and the description notes it is an OpenChainGraph compute node consuming art-304-aiuc1-evidence-pack-assembler, which differentiates it somewhat from sibling lint_aiuc1_control_evidence. However, it never states what the freshness lint actually evaluates (staleness windows, required evidence fields), so the agent knows the category 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.
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 explains compute-mode selection, which is genuinely useful guidance. But it never says when to call this lint versus alternatives such as lint_aiuc1_control_evidence or the AIUC-1 assembler steps, leaving the routing decision implicit.
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 LinterBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_lei_payment_binding").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint, idempotentHint, and destructiveHint=false already declared, the description goes further by disclosing compute routing (server vs browser), transient input handling ('not stored, logged, or retained'), synthetic-input requirements, AP2 artifact export with execution_hash, and a verifiable FV-status receipt. These are meaningful behavioral traits beyond the annotations, though it omits authentication needs and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and not front-loaded with the tool's actual function. It repeats 'OpenChainGraph compute node' in consecutive sentences and spends substantial space on provenance details, a FV-status path, and a URL that do not help an agent invoke the tool. The most important information about what the linter checks and what policy_parameters should contain is absent or deferred to a manifest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object, four-parameter tool with no output schema and a decision function that is never described, the definition is incomplete. The description covers compute modes, data handling, and upstream provenance, but it does not explain what inputs are expected in policy_parameters or what the linter evaluates, leaving the agent unable to invoke it meaningfully without further manifest inspection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute-mode behavior already documented in the schema and mentions upstream artifacts, which loosely maps to parent_hashes and parent_tool_ids, but it adds no real syntax or format guidance beyond the schema. The critical policy_parameters object 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool as a 'Wolfsberg Payment Transparency & LEI Binding Linter' and calls it an 'OpenChainGraph compute node (compliance_mandate)', which gives a domain and a category. However, it never states what the linter actually checks, what a 'payment binding' means, or what compliance mandate is enforced. The agent must infer the purpose from the title alone, which is vague 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives some usage constraints: 'Use synthetic or anonymised inputs only', explains compute-mode selection, and states it 'Consumes upstream artifacts from: art-242-pacs008-party-completeness-validator'. It does not, however, name alternatives or explain when this linter should be preferred over sibling validators such as check_lei_relationship_consistency or validate_pacs008_party_completeness. Usage is implied by the upstream artifact dependency, but not explicitly contrasted with other tools.
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 PackCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_mcp_server_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds real behavioral context beyond the annotations: transient processing with no storage, logging, or retention; the requirement to use synthetic/anonymised inputs; and that it exports an AP2 artifact carrying execution_hash for provenance. These data-handling and side-effect disclosures are valuable, though the compute-routing detail largely duplicates schema content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with low-value boilerplate (FV-status hash, a documentation URL, downstream feed IDs) while omitting the tool's actual purpose. It is not front-loaded around what the tool does, so the signal is buried in infrastructure prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and no output schema, the description says almost nothing about inputs, expected results, or what 'conformance' means here; it defers entirely to describe_tool for output. The core informational need an agent has before calling it is unmet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 mention of compute:'auto'/'browser' and gpu:true delegation adds nothing beyond the schema's own enum descriptions, so the baseline 3 holds.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what lint_mcp_server_conformance actually does. It leads with platform boilerplate ('OpenChainGraph compute node (infrastructure_mandate)') and describes compute routing rather than the conformance-checking function the name implies. An agent gets the intent only from the name and title, 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.
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 sibling linters like lint_mcp_tool_definition or score_mcp_server_readiness. The only conditional language concerns compute mode invocation, not selection between tools, so 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.
lint_mcp_tool_definitionMCP Tool-Definition Linter & Annotation DesignerARead-onlyIdempotentInspect
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). Output schema: call describe_tool("lint_mcp_tool_definition").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, but the description adds substantial behavioral context: the tool renders an interactive widget, applies inputs via AIN Bridge, and runs client-side with zero PII and zero network. This goes well beyond what annotations provide and makes execution expectations clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, with purpose front-loaded, followed by usage trigger and behavioral execution details. Every sentence earns its place; there is no filler, and the output-schema pointer is compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description helpfully states the return items (findings, conformance score, recommended annotation set) and points to describe_tool for the output schema. It could describe the structure of findings in more detail, but for selection and invocation the definition is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, so the baseline is 3. The description repeats the AIN Bridge prefill mechanism and points to the manifest input_schema, but it does not enumerate the dynamic input element IDs. It adds some context without substantially exceeding what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Validate'), a precise resource ('an MCP tool definition'), and the standards applied (JSON Schema 2020-12, naming, output-schema, annotation rules). It names concrete return artifacts (findings, conformance score, recommended annotation set), which clearly distinguishes it from sibling linters like lint_mcp_server_conformance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger: 'Use when a developer wants to check an MCP tool definition before publishing.' It does not mention when not to use it or name alternative linters, so it falls just short of a 5.
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 LintCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_metro2_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description goes beyond that by disclosing data-handling behavior (inputs processed transiently, not stored/logged/retained), the server-vs-browser delegation semantics, and that it exports an AP2 artifact carrying an execution_hash for provenance. That is genuinely useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with redundant boilerplate ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'), followed by execution-mode minutiae, an artifact URL, and an 80-character FV-status hash. Only the final sentence about describe_tool for the output schema is directly actionable for tool selection; the rest crowds out the actual purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers it to describe_tool, which is acceptable. However, for a lint tool whose whole job is consuming a Metro 2 record, the description never explains how the record is supplied (policy_parameters 'See the tool's manifest'), leaving a real gap in an otherwise verbose entry.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum semantics and adds nothing about policy_parameters beyond pointing 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title establish the verb+resource ('lint' a 'Metro 2 credit-reporting record'), but the description body never actually states what the lint checks, what a Metro 2 record is, or how it differs from sibling linters like lint_mismo_uldd_ulad or lint_x12_claim_records. It instead restates the title and pivots immediately to OpenChainGraph compute-node mechanics, leaving the substantive purpose conveyed only 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition selecting this tool over the many other lint_* siblings, and no prerequisites. The only constraint offered, 'Use synthetic or anonymised inputs only,' is an input-handling rule rather than usage guidance. The compute-mode explanation describes how execution happens, not when an agent should 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_mismo_uldd_uladULDD/ULAD Structural LinterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_mismo_uldd_ulad").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe read-only, idempotent, non-destructive profile, so the description is not carrying the safety burden. It does add real context beyond annotations: transient processing with no storage/logging, the AP2 artifact + execution_hash export, and the offline-verifiable FV-status receipt. However, that content is generic infrastructure boilerplate that appears identical across this tool family rather than anything specific to ULDD/ULAD linting behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool identity, but a large fraction of the text is chain-provider boilerplate (compute binding, FV-status receipt URL, describe_tool pointer) that does not earn its place in a tool-selection description. It is not rambling, but the signal-to-noise ratio is poor for a single-purpose linter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter node with a nested free-form policy_parameters object and no output schema, the description should say what inputs the lint consumes and what it returns. Instead it offloads both to describe_tool and an external manifest, leaving the agent unable to know what document to lint or what a result looks like. Coverage is materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 beyond the schema on any parameter; for policy_parameters it only defers to 'the tool's manifest for field names,' which the schema also does. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('ULDD/ULAD Structural Linter: OpenChainGraph compute node'), which is essentially a tautology. It never states what the linter actually checks in a ULDD/ULAD document, what rules or structural invariants it enforces, or what distinguishes it from sibling linters such as lint_metro2_record or lint_x12_claim_records. The resource is only knowable from the name/title, 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.
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 lint versus other lint_* tools, and no statement of prerequisites beyond the incidental 'Use synthetic or anonymised inputs only.' The compute-mode discussion describes execution routing, not when an agent should select this tool. 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.
lint_securities_settlement_messageSecurities-Settlement Message Linter (ISO 20022 sese/semt)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_securities_settlement_message").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, yet the description adds real context: deterministic compute, auto/server/browser execution with delegation URL fallback, transient non-retained processing, synthetic-input requirement, and an exported AP2 artifact with execution_hash for provenance. These disclose behavior the annotations do not.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded but the body is dominated by infrastructure boilerplate: a raw FV-status URL and hash, artifact IDs, and channel references (OpenChainGraph compute node, chain provenance) that crowd out the core description of the lint. Signal-to-noise is poor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters object, the description should orient the agent on what the lint evaluates and returns; instead it defers entirely to describe_tool and the manifest. Compute/provenance/privacy are well covered, but the substantive input and result semantics are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) are documented inline. The description largely repeats the schema's compute explanation and adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line state a specific verb+resource: linting ISO 20022 sese/semt securities-settlement messages. That is enough to distinguish it from non-ISO-20022 siblings (e.g. lint_mismo_uldd_ulad, lint_metro2_record). However the description never says what the linter actually validates or what it produces, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Workflow routing is given (consumes art-81-allocation-affirmation-conformance, feeds cry-04-merkle-batch-verifier and ptg-01-ap2-prompt-template-generator) and compute-mode selection is explained, but there is no when-to-use/when-not guidance against competing ISO 20022 siblings like check_iso20022_pqc_readiness or validate_dtcc_ca_iso20022_message.
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 AttestationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_settlement_orchestrator_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: the compute-mode delegation rules (auto/server/browser, gpu:true always delegates), transient no-storage/no-logging data handling, the execution_hash provenance export, and the nature of the FV-status object as a snapshot verified offline. It is consistent with the annotations, no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key facts (node type, compute modes, data handling) are front-loaded, but the prose is bloated with low-signal material: a raw URL, a long hex FV-status path, and a pointer to describe_tool for an output schema. Several sentences carry infrastructure boilerplate rather than decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is only partially complete: it explains runtime/compute and provenance mechanics well but defers the actual decision-function fields to 'the tool's manifest' and the response shape to describe_tool. An agent can invoke it, but cannot predict what it validates or returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 explanation largely restates the schema's enum semantics rather than adding anything new, 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.
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 and names its concrete deliverables (an AP2 artifact carrying execution_hash, consuming upstream art-289). But it never states what 'settlement orchestrator conformance' actually checks, so the substantive purpose is left to inference from the name. It differentiates itself from siblings mainly via the upstream artifact reference rather than a described behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, despite a very large sibling set (lint_besu_settlement_contract, lint_mcp_server_conformance, validate_pvp_settlement, etc.). The only usage constraint offered is 'Use synthetic or anonymised inputs only', which is an input restriction, not situational guidance.
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 LinterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_stock_token_valuation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 description usefully adds the compute-mode contract ('auto'/'server'/'browser', gpu:true always delegates), the data-retention stance ('processed transiently... not stored, logged, or retained'), and the side effect of exporting an AP2 artifact with execution_hash. That is real behavioral context beyond the annotations, though the linter's own failure modes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but 'OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node.' is redundant, and the raw FV-status hex URL plus the describe_tool pointer consume space without adding invocation value. Some sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a generic nested policy_parameters object whose fields live 'in the manifest', the description never tells the agent what to pass or what the lint returns; it only defers to describe_tool for the output schema. For a tool whose real inputs are opaque, this leaves the core calling contract under-specified despite thorough infrastructure detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 in the schema and offers no field-level detail for policy_parameters, deferring 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/description name a resource ('Valuation Double-Count / Decimal Linter') and a domain hint ('collateral_mandate'), so an agent can guess it lints stock-token valuations for double-counting and decimal errors. However, the body never explains what the lint actually detects, what a violation looks like, or how it differs from siblings such as compute_stock_token_collateral_haircut or check_tokenized_collateral_eligibility. The first clause largely 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.
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 linter versus alternative valuation/collateral tools in the sibling list. The only directive is a data-handling rule ('Use synthetic or anonymised inputs only'), which is a constraint, not selection guidance. 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.
lint_trace_cat_reportsTRACE / CAT Reporting LintCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_trace_cat_reports").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so the safety profile is covered. The description adds genuinely useful context beyond that: transient processing with no storage/logging, browser vs server delegation, and AP2 export with execution_hash. None of this, however, tells the agent what the lint emits on the compliance dimension.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is dominated by infrastructure boilerplate, a snapshot-vs-subscription disclaimer, and a full FV-status URL/hash, which crowd out tool-relevant content. Sentence count is high while the tool's actual behavior goes unexplained.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and the description defers the return shape to describe_tool. For a compliance lint with a nested policy_parameters object, the absence of any statement about what is validated or what a lint result contains leaves the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with four documented properties, so the baseline is 3. The description adds only marginal meaning (compute modes, upstream artifact chaining) beyond the schema's own enum and field docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title ("TRACE / CAT Reporting Lint") and then pivots to platform framing ("OpenChainGraph compute node"). It never states what the lint actually checks or flags in TRACE/CAT reports, so an agent gets the resource but not the verb's effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given, and no sibling is named despite a large family of comparable lint/validate tools (lint_metro2_record, validate_emir_trade_report, lint_x12_claim_records). The compute-mode discussion 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.
lint_ucp_checkout_payloadUCP Checkout Payload LintCRead-onlyIdempotentInspect
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. Output feeds: art-12-acp-checkout-conformance-validator. Open at: https://ainumbers.co/chaingraph/art-564-ucp-checkout-payload-lint.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_ucp_checkout_payload").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine traits: transient input processing (not stored, logged, or retained), browser delegation URL on compute:'browser', gpu:true always delegating, and AP2 artifact emission with execution_hash. However most of this is platform-wide OpenChainGraph boilerplate rather than tool-specific behavior, and nothing says what the lint inspects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single dense paragraph is bloated with platform boilerplate (kernels, Workers, delegation semantics, provenance hashing), a raw documentation URL, an embedded FV-status hash, and a self-referential 'call describe_tool' line. Only the synthetic-input warning and the downstream feed pointer 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and zero required parameters, the description is the only source of what a lint result looks like and what conformance it asserts — and it omits both, deferring to describe_tool and an external URL. For a compliance lint the agent is left unable to interpret a result or decide readiness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 text largely duplicates the schema's own enum description and adds no field-level meaning for policy_parameters beyond 'see the manifest'. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what linting a UCP checkout payload actually checks — it labels itself a 'compliance_mandate' OpenChainGraph compute node and restates the resource from the name. An agent cannot distinguish it from siblings like validate_acp_checkout or audit_acp_ucp_product_feed, nor tell what a pass/fail means. The 'what' is delegated to an external URL and describe_tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is guidance on compute mode (auto/server/browser) and a warning to use synthetic or anonymised inputs, plus a downstream hint ('Output feeds: art-12-acp-checkout-conformance-validator'). But there is no when-to-use-this-vs-alternatives statement, no prerequisites, and no described trigger condition for linting versus validating a checkout.
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 LintCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_x12_claim_records").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context: server-side vs browser delegation semantics for gpu:false vs gpu:true nodes, transient processing with no storage or logging, and an AP2 artifact carrying execution_hash for provenance. It does not disclose what lint findings or error/warning output to expect, which keeps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with a restatement of the tool name and then spends most of its length on shared OpenChainGraph boilerplate, a raw documentation URL, and a 64-character FV-status hash that an agent cannot act on. The genuinely useful compute/privacy lines are buried inside infrastructure prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic lint tool with no output schema, the description should say what results look like; instead it points to describe_tool for the output schema, which partially compensates. Provenance, privacy and compute locality are covered, but the validation surface and the nested policy_parameters field names remain opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 itself, including the compute enum, so the baseline is 3. The description restates the compute-mode semantics but adds nothing about parent_hashes/parent_tool_ids chaining or what policy_parameters fields the lint decision function expects (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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title identifies the verb (lint) and resource (X12 837/835 claim records), and the description calls it a deterministic compliance-mandate compute node. But it never says what is actually checked (837 claim vs 835 remittance rules, structural vs code-set validation), so an agent cannot distinguish its purpose from lint_metro2_record or lint_mismo_uldd_ulad beyond the X12 label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 an input constraint rather than guidance on when to pick this tool over a sibling. There are no prerequisites, no when-to-use/when-not-to-use conditions, and no naming of alternatives despite a large lint_* family.
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 LinterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lint_x402_v2_migration").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: transient processing with no storage/logging/retention, the compute:'auto'/'server'/'browser' delegation semantics, gpu:true always delegating, and that it exports an AP2 artifact carrying execution_hash. That is meaningful operational context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with provenance noise — a full artifact URL, a 64-hex FV-status receipt path, and a note about offline verification — that does not help an agent decide to call or correctly invoke the tool. Useful compute/chaining information is buried mid-paragraph rather than front-loaded, and the title is repeated verbatim as the first clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers to describe_tool for it, but it does cover data handling, compute binding, and upstream/downstream artifact wiring. What remains missing is what the lint actually produces (findings, severity, pass/fail), which for a linter is the most decision-relevant return information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 new about the parent-hash chaining pair or policy_parameters beyond 'see the manifest', so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names a specific artifact (x402 v2 wire-format migration) and the verb 'lint' is implied by the tool name, so the resource is identifiable. However the description never states what the linter actually checks or what a finding looks like; it substitutes infrastructure/provenance metadata for a purpose statement. It also gives no differentiation from the many other lint_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 caveat, not a when-to-use rule. Nothing says when to run this linter instead of validate_x402_deferred_handshake, reconcile_x402_batch_settlement, or the other x402 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.
list_ainumbers_toolsList AINumbers toolsBRead-onlyIdempotentInspect
Search the AINumbers catalog (1190+ client-side fintech tools). Returns deep-links; prefill-enabled tools accept #in=<base64url(JSON of {element_id: value})>[&run=1] for one-click invocation.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows to return. Default 20. | |
| query | No | Free-text search over tool name and description. Omit to list without filtering. | |
| cursor | No | Page token: echo the nextCursor from the previous reply to fetch the next page (keyset on tool name — stable across catalog regens). | |
| category | No | Restrict results to one catalog category (e.g. "mortgage", "kyc"). Omit for all categories. |
TDQS
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 information: results are deep-links and prefill-enabled tools accept an #in=<base64url(JSON)> fragment plus optional &run=1 for one-click invocation. That payload convention is not derivable from the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with no filler and the catalog scope front-loaded. The embedded fragment syntax is terse to the point of near-cryptic, but it is information-dense rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 some return-value burden and it partially discharges it by describing deep-links and the prefill fragment. It omits anything about result shape, cursor echo behavior in the reply, or categories returned, which the parameters only hint at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit/query/cursor/category are already documented, including the keyset pagination note. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and resource (AINumbers catalog) with a scale hint (1190+ client-side fintech tools). It is distinguishable from near siblings like find_tool, describe_tool and call_tool, though it never names them, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus find_tool, describe_tool, or call_tool, nor any exclusion. Usage is only implied by the word 'Search' and by the schema's 'omit to list without filtering'.
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 LookupCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lookup_mletr_jurisdiction_adoption").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Although annotations already declare readOnly/idempotent/non-destructive, the description adds meaningful behavioral context: inputs are processed transiently and not stored or logged, "browser" compute returns a delegation URL instead of a result, gpu:true nodes always delegate, and the call exports an AP2 artifact carrying execution_hash for provenance. These are real operating characteristics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with infrastructure metadata (compute binding rules, an artifact URL, and an FV-status file path) while the actual function statement is absent. Compute semantics are repeated nearly verbatim between the description and the compute parameter 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description should say what the lookup produces, but it never describes the returned jurisdiction-adoption data or its shape. It offers provenance and a pointer to describe_tool("lookup_mletr_jurisdiction_adoption") for the output schema, which pushes the essential information elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 only echoes the compute-mode semantics and otherwise defers policy_parameters field names to "the tool's manifest", adding no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 MLETR jurisdiction adoption, but no sentence states what the tool actually computes or returns (e.g. which jurisdictions have adopted MLETR and with what status). It largely restates the name plus generic compute-fabric boilerplate, and never distinguishes itself from siblings like validate_mletr_record or check_digital_trade_rules.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: nothing says when a jurisdiction-adoption lookup is the right call versus validate_mletr_record, check_digital_trade_rules, or any other MLETR/digital-trade sibling. The only conditional logic offered concerns compute transport mode, which is invocation mechanics 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.
lookup_reg_z_thresholdsReg Z Threshold LookupCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("lookup_reg_z_thresholds").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly, idempotent, non-destructive), so the description earns credit for disclosing that inputs are processed transiently and not stored/logged/retained, that a browser delegation URL is returned when compute:'browser', and that an AP2 artifact with execution_hash is exported for chain provenance. These are real behavioral traits beyond the annotations. It does not, however, describe failure modes, latency, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the rest is a dense run-on of platform boilerplate: compute binding details, retention policy, AP2 export, a marketing URL, and an FV-status JSON hash path. Much of this (especially the hash and URL) does not help an agent decide or invoke correctly, and it crowds out the domain-specific content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with nested objects, chaining parameters, and no output schema, the description omits the essentials: what thresholds are looked up, what policy_parameters fields exist, and what the response shape looks like (it punts to describe_tool). Deferring everything to other surfaces leaves the agent unable to call this correctly from the definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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_hashes/parent_tool_ids chaining parameters are already fully documented. The description's compute-mode explanation merely restates the schema. Notably, the domain-critical 'policy_parameters' object is deferred to 'the tool's manifest' rather than explained, so the description adds nothing for the parameter an agent most needs to fill in.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Reg Z Threshold Lookup: OpenChainGraph compute node (compliance_mandate)' names a verb and resource, but the body then describes platform mechanics rather than what the tool actually computes (which Reg Z thresholds, from what data). It never distinguishes this from close siblings like check_qm_points_and_fees, test_hoepa_high_cost, or classify_qm_apr_apor_spread. Minimum-viable purpose statement padded with infra boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and no prerequisites or triggering conditions for the Reg Z lookup itself. The only usable guidance is operational ('Use synthetic or anonymised inputs only') and the compute-mode selection, which is not tool-selection guidance. An agent has to infer relevance 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.
map_agent_payment_mandateAgent Payment Mandate Cross-Protocol MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_agent_payment_mandate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses real behavioral traits: inputs are processed transiently and not stored, logged, or retained; compute:"auto" runs server-side on Cloudflare Workers for gpu:false nodes; compute:"browser" returns a delegation URL; gpu:true always delegates; and the FV-status receipt verifies offline. This is meaningful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence restates the title and then front-loads compute-node internals, a URL, and a long FV-status hash before any statement of what the tool computes. Much of the text (offline receipt verification, kernel registration) is boilerplate that does not earn its place for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested policy_parameters, no output schema, and an opaque "cross-protocol mapping" function, the description never explains what decision or mapping is produced or when a caller should expect a server result vs a browser delegation URL for their specific inputs. It defers the output contract to describe_tool rather than summarizing it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description and adds nothing about parent_hashes/parent_tool_ids or how policy_parameters are discovered (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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title ("Agent Payment Mandate Cross-Protocol Mapper") and appends generic infrastructure boilerplate ("OpenChainGraph compute node (compliance_control)"). It never states what the mapping actually computes or what an AP2 artifact mapping means, aside from noting it exports an artifact with execution_hash. An agent cannot distinguish this from siblings like build_ap2_cartmandate_hashchain or validate_ap2_mandate_chain 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.
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 sibling is named as an alternative. The only directive is "Use synthetic or anonymised inputs only," which is an input constraint rather than routing guidance. Nothing tells an agent when this mapper is preferable to the many other AP2/mandate 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 MapperBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_ai_act_procurement_clauses").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond that: inputs are processed transiently and not stored, logged, or retained; the node is deterministic; it exports an AP2 artifact carrying execution_hash for chain provenance. These are real operational traits an agent could not get from the annotations alone, though return shape 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
There is notable waste: 'Deterministic OpenChainGraph compute node' repeats the preceding clause, the compute-mode paragraph duplicates the schema verbatim, and a long FV-status hash/receipt sentence plus a raw URL add bulk that does not help tool selection. The genuinely useful lines (transient processing, artifact chaining) 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description points to describe_tool for the return shape and gives workflow positioning via upstream/downstream artifacts, which is helpful. But it never states what the clause-mapping produces or what policy_parameters fields mean, leaving the decision function opaque for a nested-object parameter. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description, and for policy_parameters it defers to 'the tool's manifest for field names' rather than adding 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line establish a specific verb+resource (mapping AI Act procurement clauses as a compliance_mandate compute node), and the chaining lines ('Consumes upstream artifacts from art-64-ai-act-highrisk-fit-diagnostic', 'Output feeds art-411-ai-addendum-assembler') situate it in a workflow. However, the body never explains what the mapping actually does or what distinguishes it from near siblings such as assess_ai_act_conformity, classify_annex3_decisioning_obligations, or assemble_ai_addendum. Purpose is inferable from the name 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the upstream/downstream artifact chain and the 'use synthetic or anonymised inputs only' constraint, which tells an agent the operating context. It stops short of stating when to choose this mapper over an alternative sibling, and no exclusions are given. 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.
map_bhc_schedule_hcFR Y-9C Schedule HC (Consolidated Balance Sheet) MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_bhc_schedule_hc").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive, closed-world), but the description adds genuinely useful behavioral facts beyond them: inputs are processed transiently and not stored/logged, synthetic or anonymised inputs are required, execution is deterministic, and the call emits an AP2 artifact carrying an execution_hash for provenance chaining. The only gap is that it never explains what the compute actually returns semantically.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence simply repeats the tool name/title before sliding into OpenChainGraph compute-binding boilerplate that is largely duplicated in the schema's compute description. The FV-status URL, the 'Open at:' documentation link, and the 'call describe_tool(...)' pointer are noise for an agent deciding whether to invoke the tool, while the one thing that matters — what gets mapped — is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter node with no output schema, the description does cover provenance chaining, artifact export, and data-handling constraints, and points to describe_tool for the output schema. What it still omits is the core semantic payload: what Schedule HC mapping produces and how the produced artifact should be consumed, which an agent needs to know before calling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with four well-documented parameters (compute enum, parent_hashes, parent_tool_ids, policy_parameters), so the schema carries the load and the baseline is 3. The description restates the compute-mode semantics that the schema already documents and defers the substantive policy_parameters to 'the tool's manifest', adding no field-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description's only statement of purpose is the title restated — 'FR Y-9C Schedule HC (Consolidated Balance Sheet) Mapper' — with no verb describing what mapping is actually performed (which line items, from what source, to what target). It does not distinguish itself from the very close sibling map_bhc_schedule_hcr or the other map_* regulatory mappers, so an agent cannot tell which of them 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.
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 which inputs to supply, when this mapper is required versus map_bhc_schedule_hcr, or in what workflow stage it belongs. The only usage-ish content is compute-mode mechanics (auto/server/browser), which is about how to invoke, not whether to invoke.
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) CalculatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_bhc_schedule_hcr").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 never stored or logged, synthetic/anonymised inputs only, an AP2 artifact with execution_hash is exported, upstream artifact consumption, and the FV-status receipt verifies offline. These are meaningful traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the description is dense with provenance noise — a bare artifact URL, an FV-status path, and offline-verification boilerplate — that dilutes the core callable information. Several sentences serve chain-provenance concerns rather than helping invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter nested compute node with no output schema, the description supplies compute behavior, chaining expectations, data-handling policy, and points to describe_tool for the output shape, which compensates well. Only the lack of sibling differentiation and explicit parameter field guidance keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 default and chaining purpose but adds little 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: FR Y-9C Schedule HC-R (Regulatory Capital) Calculator, a deterministic regulatory_reporting compute node. An agent can identify the target report and function. It does not, however, distinguish itself from close siblings like map_bhc_schedule_hc or rollforward_y14_capital_worksheet, so it falls short of the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives among the many sibling capital/mapping tools. The compute-mode explanation describes execution behavior rather than selection criteria, so nothing helps an agent choose this over a neighbouring node.
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) MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_call_report_schedule_rc").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server-side vs client-side compute selection, browser delegation URLs, transient non-retention of inputs, and an AP2 artifact carrying execution_hash for chain provenance. This is real added context, though return shape is deferred to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is bloated with infrastructure boilerplate, an FV-status URL, and a long hex hash, pushing the actual purpose statement to the front but burying the operative details. Sentences about 'snapshot, not a subscription' and offline verification add little for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description should say more about what a successful result contains. It does name the downstream consumer (art-434 edit-check gate) and the exported AP2 artifact, and it points to describe_tool for the output schema, so it is minimally adequate but leaves the mapping semantics unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 fully documented in the schema. The description largely restates the compute-mode behavior rather than clarifying it, which is the expected baseline-3 outcome 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/opening names a specific verb+resource (map Call Report Schedule RC, Balance Sheet), so the agent knows the regulatory domain. But the body is dominated by OpenChainGraph compute-node boilerplate and never states what the mapping actually produces or how it differs from the sibling map_call_report_schedule_rcr. Purpose is identifiable but under-explained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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,' which is a privacy constraint rather than a when-to-use rule. There is no statement of when to prefer this over map_call_report_schedule_rcr or run_call_report_edit_checks, nor prerequisites for calling it.
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) MapperBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_call_report_schedule_rcr").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantially beyond them: server-vs-browser compute selection, gpu:true always delegating, transient non-retained input processing, the 'synthetic or anonymised inputs only' privacy constraint, and the AP2 artifact with execution_hash for provenance. Only the return-format/pagination side is left thin, and there is no output schema to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool identity, but marred by redundant phrasing ('OpenChainGraph compute node (regulatory_reporting). Deterministic OpenChainGraph compute node.') and several boilerplate clauses (URL, FV-status hash receipt, offline-verification aside) that do not help 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param node with a free-form nested policy_parameters object and no output schema, the description covers execution mode, chaining, privacy, and downstream consumer well. The gap is the decision-function inputs themselves: it points at an external manifest rather than saying anything about the expected policy_parameters shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the enum semantics for 'compute' and the parent_hashes/parent_tool_ids pairing are already documented in the schema; the description largely restates the compute-mode rules. It does add the chaining intent ('sets chain.parent_hashes in the export'), but never clarifies what keys policy_parameters accepts 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description identify the domain (Call Report Schedule RC-R, Regulatory Capital) and distinguish it from siblings like map_call_report_schedule_rc and map_bhc_schedule_hc by regulator/schedule. But the operative verb 'map' is never explained — what input is mapped to what output is left to inference, and the bulk of the text describes chain-graph infrastructure rather than the tool's actual function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Output feeds: art-434-call-report-edit-check-gate' line and the compute-mode explanation give real positioning information — where this node sits in a chain and how execution is delegated. However, there is no explicit when-to-use-vs-alternative guidance, e.g. why this node rather than map_call_report_schedule_rc, which is the sibling an agent would most plausibly confuse it with.
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 MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_irrbb_standardised_approach").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuine behavioral context beyond them: transient server-side processing with no storage/logging/retention, GPU-dependent delegation to the browser, deterministic execution, and an AP2 artifact carrying execution_hash for provenance. The 'use synthetic or anonymised inputs only' warning is useful. It stops short of describing anything about the result content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The name/title is front-loaded, but the body is dominated by repetitive OpenChainGraph infrastructure boilerplate ('Deterministic OpenChainGraph compute node' appears alongside a near-duplicate first sentence), a raw FV-status URL, and a 64-character hash. Very little of that length helps 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.
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 comes back, but it only says an 'AP2 artifact with execution_hash' is exported. For a 4-parameter tool whose primary input is an untyped nested object, neither the description nor the schema names the expected policy_parameters fields, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the compute and parent-hash parameters are already documented in the schema and the description merely paraphrases the compute modes. Critically, the nested policy_parameters object — the actual decision input — is left entirely opaque ('See the tool's manifest for field names'), and the description adds nothing to close that gap, so baseline 3 is the right ceiling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('IRRBB Standardised Approach Mapper') and labels it a 'compute node (compliance_mandate)' but never says what the computation actually produces — no mention of standardised-approach risk buckets, ΔEVE/ΔNII, or cash-flow mapping. It is essentially a tautology plus infrastructure boilerplate, and it does nothing to separate this tool from close siblings like evaluate_irrbb_sot_eve, evaluate_irrbb_sot_nii, or calculate_irrbb_eve_shocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mapper over the other IRRBB tools. The only directional hint is 'Output feeds: art-187-irrbb-csrbb-scope-checker', which is downstream chaining, not tool selection; the compute-mode text is parameter instruction, not 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 MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_iso20022_to_evm_calldata").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real operational context: transient processing with no storage or logging, the synthetic-inputs-only requirement, server vs browser delegation behavior, and the AP2 artifact with execution_hash for chain 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a restatement of the name and title, then padded with a raw URL, a 64-hex FV-status path, and boilerplate about snapshots and offline verification. Much of this does not help an agent decide to call the tool or how to call it correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return semantics; it does state that an AP2 artifact with execution_hash is exported, which is useful. However, the decision-function inputs are left opaque ('See the tool's manifest') and the output shape is only accessible via describe_tool, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 adds nothing beyond the schema for parameter meaning (policy_parameters field names are explicitly deferred to an external manifest), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state the verb+resource (map ISO 20022 to EVM calldata), but the description body leads with infrastructure boilerplate ('OpenChainGraph compute node (compliance_mandate)') rather than explaining what the mapping produces. It references a downstream consumer ('Output feeds: art-291-screen-onledger-transfer-batch') but never describes the transformation itself, so an agent must infer purpose 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.
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 the many sibling mapping/lint tools (e.g. map_mt9xx_to_camt, validate_dtcc_ca_iso20022_message). The compute-mode discussion is about execution routing, not tool selection, so the agent is given no criteria 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.
map_mt9xx_to_camtSwift MT9xx to camt Statement Migration MapperBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_mt9xx_to_camt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 bar is lower, and the description does add real behavior: transient processing with no storage/logging/retention, compute-mode dispatch semantics, and export of an AP2 artifact carrying execution_hash for provenance. It stops short of describing what the mapper actually validates or rejects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first clause, but the remainder is boilerplate padded with a raw URL, a 64-character receipt hash, and repeated compute-mode text already present in the schema. Those tokens 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic, read-only compute node with no output schema, the description covers compute mode, provenance output, and the describe_tool path for the return shape. What is missing is the actual migration content: which MT9xx messages and fields are accepted and how camt output is structured, which is the core of the tool's contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 pairing, so the schema already carries parameter meaning. The description adds no field-level semantics, and policy_parameters is explicitly deferred 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state a specific transformation: Swift MT9xx legacy statement messages mapped to ISO 20022 camt statements. That is enough for an agent to distinguish it from siblings like camt053_parse or map_iso20022_to_evm_calldata. The body, however, never elaborates on the mapping itself and is dominated by generic compute-node boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to reach for this tool versus alternatives (e.g. camt053_parse, validate_mt700_lc_fields, check_mt101_coexistence_readiness) and no prerequisites or exclusions. The only usage-adjacent note is 'use synthetic or anonymised inputs only', which is an input-hygiene warning 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.
map_nist_ai_rmf_functionsNIST AI RMF Function MapperBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_nist_ai_rmf_functions").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic execution, server-vs-browser compute modes, transient processing with no storage or logging, and an AP2 artifact export with execution_hash for provenance. The synthetic-input warning is a useful operational constraint, though much of the compute-node wording is generic boilerplate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is padded with compute-infrastructure boilerplate, a raw URL, and a long FV-status receipt path that add bulk without helping tool selection. Some sentences (compute modes, transient processing) earn their place; others do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object tool with no output schema, the description covers the operational behavior and provenance artifact but delegates output shape to describe_tool and never explains the domain mapping itself. It is adequate operationally but incomplete on what the tool actually computes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 and the parent_hashes/tool_ids chaining fields. The description restates compute:'auto' behavior but adds no field names or syntax for the nested policy_parameters object ('See the tool's manifest'), so it does not exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line identify it as a NIST AI RMF function mapper and an OpenChainGraph compliance_mandate compute node, distinguishing it from AI-governance siblings like assess_ai_act_conformity. However, the body never states what is being mapped to the NIST AI RMF functions or in what form, so the actual purpose remains vague 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.
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 no named alternative sibling. The 'Output feeds' line hints at downstream usage context and 'Use synthetic or anonymised inputs only' is a usage constraint, but neither tells the agent when to select this over other compliance-mapping tools.
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 MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_nmd_behavioral_repricing").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 usefully adds context beyond annotations: transient processing with no storage/logging/retention, server-vs-browser compute semantics, and that it exports an AP2 artifact with execution_hash for chain provenance. These are genuine behavioral facts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with boilerplate (compute binding, transient-processing notice, an FV-status JSON path, an artifact URL) before ever addressing the tool's function. Sentences do not earn their place relative to the agent's decision needs, and the most decision-relevant content (what the tool computes) is absent rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a nested-object tool (policy_parameters with arbitrary keys) whose actual field names are deferred to an external manifest and describe_tool, with no output schema. The description never explains what inputs drive the repricing decision, so it is not complete enough for an agent to invoke it correctly without further lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 rather than adding new meaning, and defers the actual 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title ('NMD Behavioral Repricing Mapper') and then describes infrastructure (compute node, execution modes, artifact export) rather than what the tool actually computes. An agent learns it is an 'analytics_mandate' OpenChainGraph compute node but not what an NMD behavioral repricing mapping produces or takes as input. This is closer to a tautology 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.
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 a data-handling constraint, not when-to-use guidance. There is no mention of when to prefer this over the many sibling mapping/repricing tools, and no prerequisites or exclusion conditions. The agent is left to 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.
map_pil_flavorStory PIL Flavor MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_pil_flavor").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful context beyond them: inputs are processed transiently and not stored/logged/retained, synthetic inputs are required, and an AP2 artifact with execution_hash is exported for provenance. The server-vs-browser delegation behavior is also disclosed, though much of it duplicates the schema's compute description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The behavioral facts (transient processing, synthetic inputs, artifact export) are reasonably front-loaded, but there is visible redundancy — 'OpenChainGraph compute node' is stated twice and the compute-mode rules echo the schema — plus an inline URL and long hash that add bulk without aiding selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an opaque decision-function tool with a free-form policy_parameters object and no output schema, the description omits the one thing an agent most needs: what the tool computes and what the inputs mean. Pointing to describe_tool for the output schema is acceptable, but the purpose gap leaves the definition materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 largely repeats the compute-mode semantics rather than adding new meaning, and it punts policy_parameters field names 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what 'PIL flavor mapping' actually does — it restates the tool name/title and then describes the OpenChainGraph compute-node infrastructure. An agent learns it is a 'deterministic compute node' with a 'decision function' but not what decision or flavor mapping is being performed, so it cannot distinguish this from other map_*/compute_* siblings 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.
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 compute:auto/server/browser discussion is parameter selection, not tool selection. The only directive given 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_robinhood_chain_regimeFinancial-Instrument Regime MapperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_robinhood_chain_regime").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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), while the description adds genuinely additional behavior: transient processing with no storage/logging/retention, deterministic execution, browser delegation semantics for gpu:true nodes, and export of an AP2 artifact carrying execution_hash. That is substantive beyond the annotations, though phrased as generic infrastructure boilerplate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The identity is front-loaded, but the body is largely reusable boilerplate with redundancy ('OpenChainGraph compute node' stated twice) and clutter (a full page URL and a 64-char FV-status hash). Sentences are individually grammatical but not all earn their place for a tool-selection decision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested, undocumented policy_parameters object and no output schema, the description never explains the actual decision function or the meaning of a 'regime'; it instead offloads to describe_tool. The infrastructure metadata is present, but the information an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mention of the AP2 artifact and execution_hash chaining loosely motivates parent_hashes/parent_tool_ids, but it duplicates what the schema already states and adds nothing about policy_parameters fields, which it explicitly defers to a manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description frames the tool as a 'Financial-Instrument Regime Mapper: OpenChainGraph compute node (crypto_regulatory_mandate)' but never says what mapping a 'robinhood chain regime' actually computes or decides. It largely restates the title and names a kernel domain without a concrete verb+resource, and it does not differentiate from siblings like run_robinhood_chain_fit_diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives guidance on the compute mode ('auto' vs 'browser') and a note to use synthetic/anonymised inputs, but nothing about when this tool should be chosen over alternatives, what inputs it expects, or which sibling to use instead. The compute guidance is 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.
map_tempo_settlementTempo Agentic Checkout Settlement MapperBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("map_tempo_settlement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: transient processing ('not stored, logged, or retained'), a directive to use synthetic/anonymised inputs only, deterministic server-vs-browser execution rules, and AP2 artifact export with execution_hash for chain provenance. These are exactly the traits an agent needs to call it safely and correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool identity and mode semantics, but wastes space on near-duplicate phrasing ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node') and embeds a long URL and a 64-hex FV-status filename that add bulk without selection value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, nested-object compute tool with no output schema, the description covers computation mode, prerequisites, and data-handling policy, and points to describe_tool for the output schema. It does not explain the artifact it returns or the shape of policy_parameters, leaving a meaningful gap for an agent invoking it cold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 with detailed descriptions. The description restates the compute-mode semantics rather than adding new meaning, and leaves policy_parameters opaque by 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a deterministic compute node for 'settlement_mandate' that consumes upstream artifacts and exports an AP2 artifact with execution_hash. However, it never says what settlement decision or mapping it actually performs, so an agent cannot easily tell it apart from siblings like model_tempo_payment_economics or compute_tempo_mainnet_fee_capacity. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The compute-mode discussion ('auto'/'browser') is operational, not selection guidance. There is no statement of when to use this tool versus the other Tempo/tempo-settlement tools, only that it depends on art-34-tempo-fit-diagnostic and art-36-tempo-mpp-agent-mandate upstream. Prerequisites are named but alternatives are not.
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 MatcherCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("match_confirmations").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses genuinely useful behavior: server-side vs browser execution, the browser delegation URL return path, transient non-stored/non-logged processing, and an execution_hash provenance artifact. This is consistent with readOnlyHint/idempotentHint and adds real context, though it says nothing about what the computation produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Heavily front-loaded with infrastructure boilerplate before any task-relevant content, and it wastes space on an artifact URL, a long FV-status file hash, and a pointer to describe_tool. The one substantive element, the compute/retention semantics, is buried amid filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object tool with no output schema, the description omits the core: what policy_parameters should contain (deferred to an external manifest) and what the matching result looks like. The platform metadata is complete, but the task-level information an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; the description's explanation of compute:'auto'/'browser' merely echoes the schema enum description. It adds nothing about parent_hashes ordering or policy_parameters fields beyond pointing to 'the tool's manifest'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is dominated by platform boilerplate (compute binding, Cloudflare Workers, AP2 export, FV-status receipt) and never states what 'matching bank/AR confirmations' actually means or returns. 'Bank/AR Confirmation Matcher: OpenChainGraph compute node' essentially restates the title with a generic infrastructure label, so an agent cannot tell its function apart from siblings like recon_match or reconcile_emir_pairing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling reconciliation/matching tools (recon_match, reconcile_*, check_iolta_three_way_reconciliation). The only 'guidance' is compute-mode mechanics and a synthetic-input warning, which does not help tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_invoice_three_wayThree Way Invoice MatchCRead-onlyIdempotentInspect
Three Way Invoice Match: 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-701-three-way-invoice-match.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("match_invoice_three_way").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false. The description does add real behavioral context beyond them: compute routing (auto/server/browser, gpu:true always delegates), transient processing with no storage/logging/retention, and export of an AP2 artifact with execution_hash. However this is generic platform boilerplate that does not tell the agent what this specific match operation does or produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is boilerplate-heavy and redundant ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node') before ever stating the tool's purpose. A long documentation URL and a full fv-status hash consume significant 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a key open-ended policy_parameters object, the description should explain what the match computes and what inputs it expects. Instead it explains compute plumbing and the AP2 artifact, leaving the actual decision function, expected fields, and output shape unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 carries the parameter documentation comprehensively (compute enum, parent_hashes, parent_tool_ids, policy_parameters). The description adds no parameter-level detail; the critical policy_parameters fields are deferred entirely to 'the tool's manifest' in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The only statement of purpose is the name restated ('Three Way Invoice Match: OpenChainGraph compute node (compliance_control)'), which is a tautology. Nothing explains what a three-way invoice match actually compares (PO vs. receipt vs. invoice) or what it returns. The rest of the text describes the runtime infrastructure, not the tool's job.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling is referenced despite many adjacent tools (check_iolta_three_way_reconciliation, match_confirmations, reconcile_commission_statement). The single constraint, 'Use synthetic or anonymised inputs only', is an input policy 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.
mobilize_margin_collateralMargin Call Collateral MobilizerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("mobilize_margin_collateral").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavioural context: inputs are processed transiently and not stored or retained, compute:'browser' returns a delegation URL and gpu:true nodes always delegate, and the output is an AP2 artifact carrying execution_hash for chain provenance. That is more than the annotations convey, though it omits the FV-status semantics in practice (the receipt paragraph is about snapshot staleness rather than runtime behaviour).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The kernel class is front-loaded, but the body is boilerplate-dense: the compute-mode explanation repeats the schema verbatim, and the URL plus the long FV-status receipt paragraph ('a snapshot, not a subscription... verifies offline regardless of whether that file is ever fetched') consume space without helping an agent call the tool. Several sentences do earn their place (transient processing, chain position); several do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers it to describe_tool, which is acceptable. But the substantive gap is that policy_parameters is an unconstrained object whose field names are only in 'the tool's manifest', so the agent has no idea what inputs the decision function needs; the chain context and data-handling notes partially compensate without closing that gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented in the schema; the description's re-explanation of the compute modes mostly duplicates it. The one marginal addition is the upstream-artifact reference, which hints at how parent_hashes/parent_tool_ids should be filled, but it adds no field-level detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 kernel class 'collateral_mandate' and pins its pipeline position (consumes from 505-tokenized-collateral-eligibility-checker, feeds 506-onchain-cash-leg-finality-checker), which does differentiate it from generic sibling validity tools. However, it never states what the 'collateral mobilization' decision actually computes or what inputs drive it, so an agent still cannot describe the tool's function beyond its title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is one concrete directive ('Use synthetic or anonymised inputs only') and the upstream/downstream chain listing implies where in a workflow it belongs. But there is no explicit when-to-use vs alternatives guidance against near neighbours such as check_tokenized_collateral_eligibility, validate_collateral_swap_eligibility, attest_margin_call_lifecycle, or check_cash_leg_finality, so routing must be inferred.
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 ModelerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_agent_service_metering").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, deterministic execution, compute-mode delegation semantics, and export of an AP2 artifact with execution_hash for provenance. This is real added value 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and mixes purpose, compute binding, data-handling, provenance, chain wiring, URL, and receipt status. Much of it (URL, FV-status hash) is infrastructure metadata rather than decision-relevant, and the opening redundantly repeats the name/title, weakening front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates reasonably by disclosing compute modes, chaining inputs, downstream consumers, and the exported artifact shape, and it points to describe_tool for the output schema. The remaining gap is that policy_parameters semantics are pushed to an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 only parameter-related note is that policy_parameters field names live in the tool's manifest, which defers rather than clarifies; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title's framing ('Agent-Service Metering & Marketplace Economics Modeler') and identifies it as a 'compute node (payment_policy)', but never states in a verb+resource form what it actually computes or what the metering result contains. It distinguishes itself from generic siblings only by the artifact chaining references, not by a crisp statement of function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through the chain wiring ('Consumes upstream artifacts from... Output feeds...') and an input constraint ('Use synthetic or anonymised inputs only'), but there is no explicit when-to-use / when-not-to-use guidance and no named sibling alternative. The agent must infer the position in the pipeline.
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 ModelBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_arc_cpn_economics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint/destructiveHint already supplied, the description still adds real value: compute delegation semantics (auto vs browser, gpu:true always delegates), transient non-retention of inputs, deterministic execution, and AP2 artifact export with execution_hash for provenance. These are behavioral traits the annotations do not encode and that affect how an agent should call and trust the tool. It stops short of describing latency, size 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool name and runtime type, but a large share of the text is family-wide compute-binding and FV-receipt boilerplate rather than tool-specific content. It is not bloated to the point of harming selection, but several sentences would be better pushed into a shared preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object, mutation-free compute tool with no output schema, the description covers provenance, determinism, and upstream dependency, and points to describe_tool for the output shape. It omits what the model computes, what policy_parameters expect, and what the exported artifact contains, leaving an agent unable to predict results without an extra discovery call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute description and adds no syntax, range, or examples; policy_parameters fields are deferred 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.
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 runtime label ("OpenChainGraph compute node (treasury_mandate)") and never explains what corridor economics the model actually computes or over what inputs. It distinguishes the tool from generic siblings by naming the upstream artifact art-42-arc-fit-diagnostic, but an agent still cannot tell from the description what business question this answers versus model_stablecoin_corridor_economics or run_arc_fit_diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The only routing signal is "Consumes upstream artifacts from: art-42-arc-fit-diagnostic," which weakly implies it runs after that diagnostic but does not state the selection condition or the sibling it competes with.
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 ModelARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_arc_paymaster_economics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage/logging, the server-vs-browser compute split, and that it exports an AP2 artifact with execution_hash. It stops short of describing the actual compute outcome 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool name and category, but it is long and contains redundancy, notably 'Deterministic OpenChainGraph compute node' and a compute-mode explanation that duplicates the input schema. The FV-status and URL strings add provenance but dilute focus.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers the key operational concerns: compute binding, data handling, upstream artifact dependence, artifact export, and how to retrieve the output shape via describe_tool. The actual decision semantics remain unspecified but the call mechanics are adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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:auto/server/browser behavior but adds no format or syntax 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Arc paymaster economics) and its category (OpenChainGraph compute node, treasury_mandate), which distinguishes it from sibling models like model_arc_cpn_economics and model_tempo_gas_economics by name. However, it never states what the economics model actually computes or decides, so the functional purpose is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implicitly signals a workflow dependency by naming the upstream artifact (art-42-arc-fit-diagnostic) it consumes, and gives input-handling guidance ('use synthetic or anonymised inputs only'). But it never states when to choose this tool over the many sibling economics models, nor any explicit exclusions.
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 ModelBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_arc_stablefx_rfq").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 non-obvious behavior: transient processing with no storage/logging/retention, a synthetic-inputs-only constraint, the compute auto/server/browser delegation semantics, and AP2 artifact emission with execution_hash. That is substantive context beyond structured fields, though it omits anything about the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the compute-node label and mode semantics, which is good, but a large fraction of the text is provenance/policy boilerplate (FV-status URL, offline-verification receipt, OpenChainGraph blob) that does not help an agent decide or invoke. Padded relative to the actionable content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 partially compensates by naming the AP2 artifact/execution_hash output and pointing to describe_tool for the output schema. But for a tool whose core value is a policy_parameters-driven economic decision function, the absence of any explanation of what the decision computes or what fields policy_parameters takes leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 mirrors the enum's own description, and for the critical policy_parameters it defers with 'See the tool's manifest for field names' 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify the domain (Arc StableFX RFQ economics) and the description says it is a deterministic OpenChainGraph compute node under treasury_mandate. However, it never states what the tool actually computes or returns beyond 'Exports an AP2 artifact with execution_hash' — the decision function is opaque, and there is no differentiation from siblings like model_stablecoin_corridor_economics 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use/when-not guidance and no naming of alternatives. The only routing context is that it 'Consumes upstream artifacts from: art-42-arc-fit-diagnostic', which implies a pipeline position but not a selection rule versus the many other economics-model 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 ModelerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_buy_in_exposure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for provenance. The "use synthetic or anonymised inputs only" instruction is a meaningful constraint 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The title leads, but the body is a dense run-on of internal plumbing, including a full FV-status hash URL and its offline-verification caveat, which costs significant space for marginal selection value. Several sentences (compute routing details) duplicate the schema rather than earning their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a nested, free-form policy_parameters object with no declared fields and no output schema, the description leaves the agent needing an extra describe_tool call to learn the decision function's inputs and return shape. It covers compute routing and provenance adequately but not the core input contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the enum semantics of compute and the chaining role of parent_hashes/parent_tool_ids are already documented. The description adds nothing beyond the schema for parameters and, for policy_parameters, only repeats that field names live in the manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ("Buy-In Exposure Modeler: OpenChainGraph compute node") and then devotes the body to infrastructure meta (compute routing, FV-status receipts, artifact chain wiring) rather than saying what the tool actually computes about buy-in exposure. It never states a verb+resource like "model CSDR buy-in exposure for a settlement fail," so an agent cannot distinguish it from siblings such as calculate_csdr_penalty or compute_xva 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.
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 upstream/downstream artifact IDs (art-78-csdr-penalty-calculator, cry-05-agent-action-audit-trail-aggregator) hint at pipeline position but are not framed as usage conditions, and nothing tells the agent when NOT to call it.
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 EngineCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_cbam_certificate_cost").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: compute-mode resolution (auto/server/browser, gpu:true always delegates), transient non-retention of inputs, and export of an AP2 artifact with execution_hash for chain provenance. The upstream/downstream artifact wiring also clarifies execution semantics, though the 'compute' explanation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on mixing useful behavior with low-value boilerplate (the public HTML URL, an FV-status receipt path, and a 'call describe_tool(...)' pointer). The single most valuable fact — what the tool computes — is absent, while peripheral provenance detail dominates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers the platform contract (compute modes, data handling, provenance chaining) reasonably well and points to describe_tool for the output schema. However, it leaves the domain semantics of policy_parameters to 'the tool's manifest' and never describes what the computed cost/allocation result represents, so the core task is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 no format or semantics beyond what the schema states (its compute-mode text is a near-repeat of the property description), 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.
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 ('CBAM Certificate Cost & Free-Allocation Engine') and then describes platform plumbing (compute node, compute modes, artifact chaining) rather than what the tool actually computes or returns. An agent learns it is a compliance_mandate compute node, but not what a 'certificate cost' or 'free-allocation' result contains or how it differs from siblings like calculate_cbam_embedded_emissions or resolve_cbam_default_value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives among the sibling tools. The only operative instruction is an input-safety constraint ('Use synthetic or anonymised inputs only'), which is useful but does not tell the agent when to reach for this tool versus another CBAM tool.
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 SelectorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_clearing_access_economics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint/destructiveHint already covering the safety profile, the description still adds substantive behavior: transient processing with no storage, logging or retention, the requirement for synthetic/anonymised inputs only, deterministic execution, and an AP2 artifact export carrying execution_hash. It does not spell out permissions or error/fallback behavior, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening lines are front-loaded and the compute-mode sentence is useful, but the body carries non-actionable metadata: a regulatory deadline, a raw FV-status SHA-256 URL with a 'snapshot, not a subscription' disclaimer, and a link to an external HTML page. Several of these sentences 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.
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 no output schema, the description supplies what an agent needs: execution-mode behavior, data-handling constraints, provenance output (AP2 artifact with execution_hash), and an explicit pointer to fetch the output schema via describe_tool. The remaining gap is that the actual decision inputs in policy_parameters are deferred to an unreferenced manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's restatement of auto/server/browser adds nothing. It also gives no help with the opaque nested policy_parameters object ('See the tool's manifest for field names'), leaving the one genuinely unclear parameter as unclear as the schema did.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (clearing access model / 'flagship access-model decision (W-A)') and identifies it as a deterministic compute node, but the operative verb is muddled: 'compute node', 'selector', and 'model' are stacked without plainly saying what decision the tool computes. The many similar siblings (run_treasury_clearing_fit, optimize_settlement_capital, run_tokenized_settlement_fit) are not distinguished from it at all.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real pipeline routing rather than bare context: it declares the upstream artifact it consumes (art-48-treasury-clearing-fit-diagnostic) and the downstream tools it feeds (504-settlement-risk-capital-optimizer, art-50-ficc-margin-netting-estimator), which tells an agent where in a workflow to call it. No explicit when-not or 'use X instead' guidance is given, so it stops short of 5.
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 ModelCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_l1_fee_runway").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world). The description adds real behavioral context beyond them: transient processing with no storage/logging, a synthetic-inputs-only constraint, browser delegation for gpu:true nodes, and an AP2 artifact with execution_hash for chain provenance. That is substantive disclosure layered on top of the annotation profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Padding dominates: repeated 'OpenChainGraph compute node' phrasing, a raw URL, a full FV-status hash path with commentary, and a trailing 'call describe_tool(...)' hint. The actual function of the tool is never front-loaded, so size is not earned.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with a nested policy_parameters object and no output schema, the definition omits what is computed, what inputs are meaningful, and what the result represents. It offloads everything to an external URL, a manifest, and describe_tool, leaving the agent unable to invoke it meaningfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including the enum and nested-object semantics of compute, parent_hashes, parent_tool_ids, and policy_parameters, so the baseline is 3. The description largely repeats the compute-mode rules already in the schema and only tersely points to the manifest for policy_parameters field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name ("L1 Continuous-Fee Runway Model") and labels it a deterministic compute node, but never says what the runway/fee computation actually does or returns. It is tautological boilerplate that an agent cannot use to distinguish this 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.
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 an alternative, no prerequisites, no domain context. The only operative guidance concerns compute mode mechanics (auto/server/browser), which is execution plumbing, not usage guidance.
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 LifecycleCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_perp_position").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: compute:'auto' runs server-side on Workers while 'browser' returns a delegation URL, gpu:true always delegates, inputs are transient and never stored or logged, and the call exports an AP2 artifact with execution_hash for provenance. That is meaningful beyond the annotations, though it omits any error or latency behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is densely packed with template boilerplate (FV-status hash path, OpenChainGraph node framing) that consumes most of the length without telling the agent what the tool does. The one genuinely useful behavioral sentence about compute modes 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute tool whose policy_parameters object is undocumented in the schema and whose output is only referenced via 'call describe_tool', the description leaves the core contract unexplained. With no output schema and an opaque nested input, the description should at least state what decision is computed and what a caller receives; instead it defers to external manifests.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 merely echoes the enum's own description and adds nothing about the opaque policy_parameters object (whose field names are punted 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Perp Position Lifecycle') and identifies the node domain ('derivatives_margin_health'), but never states in plain terms what the tool actually computes about a perpetual position. The actual inputs are deferred to a manifest and the output to describe_tool, so an agent cannot tell what value this produces without opening other resources. It is largely infrastructure boilerplate rather than a 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.
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 close siblings like compute_perp_margin, compute_perp_funding, or compute_perp_funding_implied_yield, nor any prerequisite or upstream-state condition beyond naming one consumed artifact. The only constraint ('Use synthetic or anonymised inputs only') is a data-handling rule, not a usage guideline.
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 ModelCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_stablecoin_corridor_economics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering read-only, idempotent, non-destructive, and closed-world, the description still adds meaningful behavior: compute-mode semantics (auto/server/browser, gpu:true always delegates), transient processing with no storage or logging, and export of an AP2 artifact carrying an execution_hash for provenance. That is real disclosure beyond the annotations. The no-retention and provenance guarantees are genuinely useful to an agent reasoning about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a metadata dump rather than a front-loaded purpose statement: the actual analytical function is buried after execution-mode boilerplate, then followed by a raw URL, a 64-char FV-status hash path, and an offline-verification caveat. Several sentences (chain provenance URL, receipt verification promise) do not help 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex analytics node with a nested, open-ended policy_parameters object and no output schema, the description gives no indication of what the decision function computes, what fields to supply, or what the response contains — it explicitly punts output documentation to describe_tool. The execution/provenance context is covered, but the substance an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, 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 generic policy_parameters object. The description's compute discussion largely restates the schema's own wording rather than adding new syntax or format detail, and it defers field names 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title signal the domain (stablecoin corridor economics), and the description identifies it as an OpenChainGraph analytics_mandate compute node. But it never states in plain terms what the model computes or what question it answers — the closest thing to a purpose statement is infrastructure boilerplate about compute modes. An agent cannot confidently distinguish its analytical scope 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.
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 against the many corridor/economics siblings. The only routing hint is a downstream dataflow note ('Output feeds: art-249-compare-corridor-cost'), which describes chain topology, not when the agent should invoke this tool.
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 EconomicsCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_tempo_gas_economics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, and the description still adds real behavior: determinism, server-vs-browser compute binding with a returned delegation URL, transient/no-retention processing, and export of an AP2 artifact carrying execution_hash. The upstream dependency on art-35-tempo-payments-business-case and the offline-verifiable FV-status receipt are also disclosed. Mostly boilerplate, but the additions are genuine 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is padded with reusable template boilerplate (privacy/transient-processing notice, FV-status URL and long hash, output-schema pointer) that consumes most of the text without explaining the tool's economics. The functional content is buried after the node-provenance preamble, so the front-loading favors infrastructure metadata over the tool's job.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters including a nested, free-form policy_parameters object holding the actual inputs and no output schema, the agent is told to consult describe_tool for the output shape and the manifest for field names, which is an acceptable hand-off. However, the description never says what the decision function computes or what the artifact contains, leaving a meaningful gap for a tool whose only real input is an untyped object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 largely restates the compute enum semantics. It does add one useful pointer for the opaque policy_parameters (see the tool's manifest for field names), but that is a hand-off rather than an explanation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening sentence name a resource domain (Tempo fee-sponsorship and gas-AMM economics) and identify it as a 'Deterministic OpenChainGraph compute node (treasury_mandate)', but no specific verb or computed quantity is stated. It never says what decision or number this node produces, so an agent cannot distinguish it from siblings like model_tempo_payment_economics, convert_tempo_fee_amm, or compute_tempo_mainnet_fee_capacity. Domain is clear; function is not.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 conditions distinguishing this from sibling tempo/gas tools. The only directive is 'Use synthetic or anonymised inputs only', which is a constraint, not routing guidance. Compute-mode selection is about execution mechanics 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.
model_tempo_payment_economicsTempo Payments Business CaseARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_tempo_payment_economics").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent, non-destructive), and the description adds substantial behavior beyond them: transient processing with no storage/logging/retention, synthetic-inputs-only requirement, deterministic server-vs-browser delegation including a returned delegation URL, and an AP2 artifact carrying execution_hash. This is real operational 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and chaining data, which is good, but it opens with redundancy ('Tempo Payments Business Case: OpenChainGraph compute node... Deterministic OpenChainGraph compute node.') and packs a URL plus a long FV-status hash path into an already dense block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, it covers compute modes, upstream/downstream artifacts, provenance export, and data-handling policy, and points to describe_tool for the output shape, so an agent can call it correctly. Only failure/error behavior and policy_parameters contents are left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 prose largely restates the enum definition. It adds nothing about policy_parameters field names, deferring to the manifest, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource ('Tempo Payments Business Case', treasury_mandate OpenChainGraph compute node) and ties it to concrete artifact IDs, which distinguishes it from siblings like model_tempo_gas_economics or model_stablecoin_corridor_economics. However, it never states in plain terms what the business case actually computes, so the verb/capability remains abstract.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Positions the tool explicitly in a pipeline: consumes art-34-tempo-fit-diagnostic and feeds art-37-tempo-stablecoin-issuance and art-36-tempo-mpp-agent-mandate, and specifies the compute-mode selection rule. It gives clear context but no explicit when-not-to-use or alternative-tool guidance.
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 ModelerBRead-onlyIdempotentInspect
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, art-12-acp-checkout-conformance-validator. Output feeds: art-30-agent-commerce-conformance-validator, art-61-x402-batch-settlement-reconciler, 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("model_x402_settlement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantial context beyond them: deterministic execution, transient processing with no storage/logging/retention, browser delegation behavior, AP2 artifact export with execution_hash for provenance, and an offline-verifiable FV-status receipt. This is a genuinely rich behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense and repetitive ('OpenChainGraph compute node' appears twice), and it carries boilerplate such as a raw URL and a 64-character FV-status hash inline. Key routing context (upstream/downstream artifacts) 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.
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 returns, and it does partially (AP2 artifact with execution_hash, browser delegation URL). But for a nested-object, chaining-heavy compute node it omits what policy_parameters fields exist and what the model returns numerically, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents compute, parent_hashes, parent_tool_ids, and policy_parameters. The description restates the compute-mode semantics (already in the schema) and adds nothing about the opaque policy_parameters object beyond pointing to a manifest, so it does not improve on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and opening line name a specific resource ('x402 Settlement Cost & Finality Modeler') and the chaining role, but the body never explains what the model actually computes regarding settlement cost or finality. It largely restates operational metadata (compute node, settlement_mandate) rather than describing the modeling action, leaving the agent to infer the substantive purpose 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies prerequisites (parent_hashes/parent_tool_ids chaining from upstream artifacts) and a constraint ('use synthetic or anonymised inputs only'), plus compute-mode selection. However, it never says when to choose this tool over siblings like classify_settlement_finality or reconcile_x402_batch_settlement, 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.
optimize_settlement_capitalSettlement-Risk Capital Efficiency OptimizerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("optimize_settlement_capital").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them: server-side vs browser execution semantics, transient input handling ("not stored, logged, or retained"), and the AP2 artifact emission with execution_hash. Not a 5 because it omits auth requirements and rate/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the title but then buries the useful content under boilerplate — a tool URL and a 64-hex FV-status receipt path that serve no selection or invocation purpose. Much of the text is template shared across the whole tool family rather than content specific to this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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-value burden; it discloses the AP2 artifact with execution_hash and upstream artifact consumption but not the shape of the compute result itself. Zero required parameters and full schema coverage mean invocation is safe, but with no output schema the return contract is only partially covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 full. The description reiterates the compute-mode behavior and the upstream-chain concept but adds no syntax or constraints the schema lacks; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the domain (settlement-risk capital efficiency) and labels itself an OpenChainGraph compute node (capital_assessment), but never states what the computation actually produces or decides — it leans on the title rather than a specific verb+resource. Among hundreds of compute_* siblings (compute_settlement_efficiency_kpi, estimate_cross_venue_margin_capital, predict_settlement_fail), nothing distinguishes this one operationally.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains invocation mechanics (compute:"auto" vs "browser", gpu:true delegation) and a hygiene constraint ("Use synthetic or anonymised inputs only"), which is useful. But it gives no when-to-use context and no routing against the many adjacent settlement/capital tools, so an agent cannot tell when this tool is the right choice versus its siblings.
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 OptimizerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("optimize_social_security_claim_age").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningfully adds beyond them: server-side vs browser delegation semantics for compute mode, an explicit no-store/no-log/no-retention guarantee, and the export of an AP2 artifact carrying execution_hash for provenance. The only gap is that it never states what output form the caller receives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition opens with infrastructure boilerplate and title restatement rather than the tool's purpose, and pads the end with a fully-qualified verification URL and a 64-character hash that consume space without helping an agent decide or invoke. Front-loading is poor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and no output schema, the description covers execution mode, input-handling policy, and provenance adequately, but leaves the decision-function input contract ('see the manifest') and the return shape unstated, which is a real gap for an optimizer whose payoff is a result set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 duplicates the enum description rather than extending it. The key gap is that policy_parameters field names are deferred to 'the tool's manifest' with no inline meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line largely restates the title ('Social Security Claiming-Age Optimizer') without explaining what the optimization computes or what decision it produces (e.g., benefit-maximizing claim age). It does add that this is a ChainGraph compute node whose output feeds art-283-pension-lump-sum-vs-annuity-decision-engine, which hints at scope, but the core verb+outcome 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is one genuine constraint ('Use synthetic or anonymised inputs only') and a note that inputs are transient, but no guidance on when to choose this tool versus neighbours like compare_pension_lump_sum_annuity or other retirement calculators, and no 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.
oracle_price_aggregationOracle Price AggregationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("oracle_price_aggregation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly/idempotent/non-destructive, and the description meaningfully extends this: inputs are processed transiently and not stored, logged, or retained; execution is delegated with a browser delegation URL; and it exports an AP2 artifact carrying execution_hash for provenance. That is substantive behavioral context beyond the annotation flags, though return-shape detail is thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core operational facts are front-loaded, but a large fraction of the text is provenance boilerplate — the FV-status URL, a 64-char receipt hash, and the artifact page link — that an agent does not need to select or invoke the tool. It is information-dense but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers return-value detail to describe_tool and an external page while only saying an AP2 artifact with execution_hash is exported. For a no-required-parameter compute node with nested policy_parameters, this leaves the agent without a clear picture of the response object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 documented in the schema itself. The description restates the compute-mode semantics that the schema already explains and does not clarify policy_parameters field names, so it adds 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.
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 named oracle_price_aggregation and notes its output feeds art-561-currency-basket-index, but never states in functional terms what it computes (e.g., aggregates oracle prices into a single value). An agent relies on the tool name/title rather than the description to infer the actual operation, and there is no differentiation from the many sibling compute/aggregate tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real guidance on the compute-mode parameter (when auto resolves server-side vs. browser delegation, gpu:true always delegates) and warns to use synthetic or anonymised inputs only. However, there is no task-level when-to-use guidance, no mention of prerequisites/costs, and no routing to alternatives among the ~400 siblings (e.g., currency_basket_index).
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trace | No | An OTLP/JSON trace document to generate a receipt bundle over. Omit if passing bundle or run_chain_result. | |
| bundle | No | {trace, span_receipts[], trace_receipt, issuer_did} to VERIFY instead of generate. | |
| service | No | resource service.name to stamp when bridging run_chain_result into a trace. Defaults to "ainumbers-chaingraph-worker". | |
| run_chain_result | No | The 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
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.
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.
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.
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.
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.
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 conformanceARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| trace | Yes | An OTLP/JSON trace document: { resourceSpans: [{ scopeSpans: [{ spans: [...] }] }] }. |
TDQS
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.
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.
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.
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.
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.
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 tableARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| xml | Yes | pain.001.001.09 XML document text to validate. |
TDQS
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.
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.
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.
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.
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.
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 ReconciliationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("parse_camt053_reconciliation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 or logged, explains the compute:'auto' vs 'browser' vs gpu:true delegation behaviour, and notes the AP2 artifact with execution_hash is exported for provenance. That is genuine behavioural context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded but the body is padded with an inline URL, a raw FV-status hash string, and duplicated compute-mode prose that already lives in the schema. The final sentence routing to describe_tool for the output schema is useful; the hash blob is not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema it correctly redirects to describe_tool, and its params are fully covered. However, for a compute node whose policy_parameters fields are referenced only as 'See the tool's manifest', the agent is left without the actual input field names, and no description of the reconciliation result is given.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 rather than adding format or syntax detail beyond it; the guidance to consult the manifest for policy_parameters fields adds only marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title establish that this parses an ISO 20022 camt.053 statement, but the description itself spends its opening sentence on infrastructure ('OpenChainGraph compute node (analytics_mandate)') rather than stating what the tool actually does with the statement or what reconciliation output it produces. It also never differentiates from the sibling tool camt053_parse, which an agent would naturally confuse with it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the default compute mode and warns to use synthetic/anonymised inputs only, but gives no guidance on when to choose this tool over camt053_parse or related reconciliation siblings, and no preconditions or exclusions beyond the data-privacy caution.
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 BuilderCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("plan_aml_disposition_sample").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so the bar is lower, and the description still adds real behavioral context: deterministic server-side vs browser compute, transient processing with no storage or logging, and an exported AP2 artifact carrying execution_hash for provenance. The disclosure is generic platform-level rather than tool-specific, which keeps 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded content is a tautological restatement of the tool name, followed by long generic OpenChainGraph boilerplate, an FV-status hash URL, and an output-schema pointer. The sentences that would actually help an agent choose or invoke the tool are missing, so length is not earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers return values to describe_tool, which is acceptable, but for a tool with a nested, essentially untyped policy_parameters object the definition never explains what the sampling frame contains or what inputs drive it. An agent cannot judge fitness from this text alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 repeats the compute-mode semantics that the schema already documents and says nothing about policy_parameters beyond deferring to 'the tool's manifest', so it adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name and title ('AML Disposition Sampling Frame Builder: OpenChainGraph compute node') and then spends its length on platform boilerplate. It never states in plain terms what the tool actually produces — an AML disposition sampling frame — nor how it differs from close siblings such as plan_attribute_sample 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.
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 alternative tools. The only usage-like statement is the constraint 'Use synthetic or anonymised inputs only', which is a caution 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.
plan_attribute_sampleAttribute Sampling Plan GeneratorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("plan_attribute_sample").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful behavior: transient server-side processing with no storage or logging, browser delegation semantics for gpu:true nodes, and an AP2 artifact with execution_hash for chain provenance. It does not contradict the read-only annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The title leads, but the body is dominated by boilerplate: a raw page URL, an enormous FV-status hash path, and a pointer telling the caller to invoke describe_tool instead of describing outputs. These consume space without helping an agent decide or invoke, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute tool with a nested opaque policy_parameters object and no output schema, the description should explain what inputs the decision function needs and what the artifact contains. Instead it punts to an external manifest and to describe_tool, 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.
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, and the description's compute-mode sentences merely duplicate that. Nothing is added for policy_parameters, whose nested field names are explicitly deferred to 'the tool's manifest' both in schema and description. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The text restates the name/title ('Attribute Sampling Plan Generator: OpenChainGraph compute node') and then describes infrastructure plumbing rather than what the tool actually produces. An agent never learns what an attribute sampling plan contains, what decision it supports, or how it differs from its obvious sibling compute_isa530_audit_sampling_mus or plan_aml_disposition_sample. Only the title carries the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use synthetic or anonymised inputs only' is a real constraint, and the compute-mode sentences explain auto/server/browser selection. But there is no when-to-use vs when-not, no routing to any of the many sibling planning/audit-sampling tools, and no statement of prerequisites or required context. 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.
plan_tls_pki_migrationTLS / X.509 PKI Migration PlannerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("plan_tls_pki_migration").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses non-obvious behavior: server vs browser delegation semantics for compute modes, that inputs are processed transiently and not stored/logged, that synthetic or anonymised inputs should be used, and that an AP2 artifact with execution_hash is emitted. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the title and compute-mode behavior, but the opening is redundant ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and the block of URLs, artifact IDs, and an FV-status hash adds bulk for a description. It is dense rather than lean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chained compute node with no output schema, the description covers compute routing, data handling, and provenance, which is useful. However, it never explains what the migration-plan return looks like beyond 'an AP2 artifact with execution_hash,' and the policy_parameters contract is deferred to an unreferenced manifest, leaving the actual functional output opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 format or syntax detail beyond it. For policy_parameters it defers to 'the tool's manifest for field names' without linking that manifest, adding essentially nothing over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title gives a specific verb+resource (TLS/X.509 PKI Migration Planner), but the body never states what the plan actually contains or computes — it substitutes plumbing (compute modes, provenance chaining, artifact IDs) for a functional description. The upstream/downstream artifact references (art-85-pqc-timeline-fit-diagnostic, 499-crypto-asset-inventory-classifier) give some placement context but no clear differentiation of the decision function from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through the workflow chain: it names the artifacts it consumes and the tools its output feeds (cry-04, cry-05), which hints at pipeline position. There is no explicit when-to-use/when-not statement or comparison against alternative migration/planning tools in the large sibling set.
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-CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("precheck_reserve_attestation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL instead of results, gpu:true nodes always delegate, and an AP2 artifact with execution_hash is exported for chain provenance. This is meaningful disclosure for a compute node. It stops short of 5 because failure/error behavior and rate or size limits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on mixing regulatory-deadline trivia ('GENIUS Act effective <= January 2027; FDIC NPRM April 2026'), a documentation URL, and a long FV-status commit hash that has no bearing on tool selection or invocation. The genuinely useful sentences (compute modes, transient processing, artifact export) are buried mid-paragraph rather than front-loaded. It is over-sized relative to the value delivered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, yet the description points to describe_tool for it and does at least note that an AP2 artifact with execution_hash is returned and that output feeds ptg-01-ap2-prompt-template-generator. However, with a nested policy_parameters object and no field documentation beyond 'see the manifest', an agent lacks enough to construct a meaningful call. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 description largely repeats the compute-mode semantics rather than extending them. Crucially it offers no help on policy_parameters contents, deferring to 'See the tool's manifest for field names', which leaves the primary decision inputs opaque. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'GENIUS Act Reserve Attestation Pre-Check' compute node for the 'attestation_mandate' domain, which gives a verb-ish resource and a regulatory frame. But it never says what is actually checked or what the pre-check decides, and it does nothing to distinguish itself from close siblings such as check_genius_reserve_disclosure, check_genius_reserve_disclosure_conformance, or verify_proof_of_reserves_consistency. The regulatory deadline boilerplate crowds out whatever minimal purpose statement exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage instruction is operational ('Use synthetic or anonymised inputs only') plus a compute-mode decision, neither of which tells an agent when to pick this tool over the sibling GENIUS/reserve-disclosure checks. There is no when-to-use, when-not-to-use, or prerequisite information (e.g. what inputs must exist before a pre-check is meaningful). An agent must 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.
predict_settlement_failSettlement-Fail PredictorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("predict_settlement_fail").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral facts: inputs are processed transiently and not stored or logged, the node is deterministic, and it exports an AP2 artifact with execution_hash for provenance. It also warns to use synthetic/anonymised inputs, which 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entry leads with a title-restating label and then buries the reader in infrastructure boilerplate (compute-binding rules, an FV-status receipt filename, a URL, artifact ids) rather than front-loading what the tool does. Much of the text duplicates the schema or is irrelevant to invocation, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose only real payload is an opaque policy_parameters object, the description never explains what computed output to expect or which fields the decision function requires, deflecting both to an external manifest and to describe_tool. With no output schema and an undefined parameter body, an agent cannot confidently construct a call from this definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 mostly echoes the compute-mode wording rather than adding syntax. The one gap it does not close is policy_parameters, whose field names it explicitly defers ('See the tool's manifest for field names'), leaving the actual decision inputs undocumented 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title make the verb+resource ('predict settlement fail') reasonably evident, and the description adds the classification ('OpenChainGraph compute node, model_governance'). However, it never actually states what the decision function computes or on what basis, so it largely restates the name and does nothing to distinguish it from settlement-adjacent siblings like classify_settlement_finality or compute_settlement_efficiency_kpi.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is implicit pipeline guidance via the listed upstream/downstream artifacts (consumes art-77 settlement-readiness and art-80 SSI conformance; feeds art-84 and cry-04), which tells an agent where this node sits in a chain. But there is no explicit when-to-use/when-not-to-use statement and no routing against sibling tools; the compute-mode guidance is a parameter concern, not a tool-selection rule.
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 ScorerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("prevalidation_readiness_scorer").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses genuinely useful behavior: default server-side compute on Cloudflare Workers with a registered kernel, compute:"browser" returning a delegation URL instead, gpu:true nodes always delegating, transient non-stored/non-logged input handling, and AP2 artifact export carrying execution_hash for chain provenance. These are real operational traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a run-on chain of platform metadata, ending with a 64-character SHA-256 FV-status URL that is pure noise for tool selection, plus a pointer to call describe_tool for the output schema. Useful content (compute modes, transient processing, chaining) is buried under infrastructure trivia, and the purpose sentence is lost in the clutter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, an agent gets only "call describe_tool(...)" for return values and no description of the score's shape (ratio, band, boolean) — a real gap for a scorer. Compute-mode and provenance behavior are well covered, but the decision function and result semantics are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 itself, so the description's compute explanation is largely redundant. parent_hashes/parent_tool_ids pairing and policy_parameters' field names are deferred to the manifest rather than clarified here, so no value is added beyond structured fields — baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ("Cross-Border Payment Prevalidation Readiness Scorer") and then devotes nearly all remaining text to platform plumbing (compute modes, artifact export, FV-status URL) rather than what the tool actually computes or decides. Nothing explains what "readiness" is assessed against, what the input policy_parameters mean, or what makes a payment prevalidated. An agent learns the resource name but not the operation's substance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative selection guidance. The only routing hint is implicit: it "consumes upstream artifacts from art-243-purpose-code-requirement-checker," which weakly implies chaining after that checker, but the agent is never told to prefer this over the many sibling readiness/fit diagnostics (e.g. run_t1_readiness_diagnostic, 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.
price_embedded_insuranceEmbedded Insurance Pricing ModellerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("price_embedded_insurance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 bar is lower, and the description adds real value beyond them: transient/non-retained input processing, deterministic execution, server-vs-browser compute delegation, and an AP2 export carrying execution_hash for provenance. This is substantive behavioral context the agent would not get 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The runtime/provenance content is dense and reasonably front-loaded, but the long promotional URL and the full 64-character FV-status hash path are noise for tool selection. Several sentences (the snapshot-not-subscription aside, the offline-verification note) do not help 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.
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 carry return-value explanation; it only notes the AP2 artifact with execution_hash and defers the real output shape to describe_tool. Combined with policy_parameters field names deferred to an unstated manifest, an agent knows how to run the node but not what the pricing function actually yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 restates the compute modes (largely duplicating the schema enum) and hints at chaining via execution_hash, but it explicitly punts on the important policy_parameters field names ("See 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence identifies the resource (embedded insurance pricing) and the artifact class (OpenChainGraph compute node), so an agent knows roughly what it is. However it never says what the model actually prices or returns, and it does nothing to distinguish the tool from insurance-adjacent siblings such as run_insurance_reporting_fit or lint_insurance_evidence_freshness. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a constraint ("Use synthetic or anonymised inputs only") but no when-to-use, when-not-to-use, or alternative-tool guidance relative to the many sibling analytics tools. An agent cannot infer from the text when this node should be selected over a competing pricing or fit tool.
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 ProverBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("prove_metadata_sanitization").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds genuinely useful traits: transient processing with no storage/logging/retention, deterministic server-side vs browser delegation, and an exported 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is bloated with infrastructure boilerplate ('Deterministic OpenChainGraph compute node', a long URL, an FV-status hash, an offline-verification note) that dilutes the actionable content. Signal-to-noise is poor even though the title is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, no-output-schema compute node, the description covers data handling, the compute-mode contract, provenance chaining (parent_hashes/parent_tool_ids implied via 'Output feeds'), and points to describe_tool for the output shape. Most of what an agent needs to call it correctly is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 largely restates the compute-mode semantics already in the schema and defers field names to the manifest, adding little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title ('Metadata Sanitization Prover') signal a specific resource, but the description itself mostly explains OpenChainGraph compute infrastructure rather than stating what the tool actually proves or produces. It categorizes itself as a 'compliance_mandate' node and mentions exporting an AP2 artifact, but never says what the sanitization proof demonstrates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides invocation-level guidance for the compute modes (auto/server/browser, gpu:true always delegates) and a clear safety constraint ('Use synthetic or anonymised inputs only'). However, it gives no when-to-use guidance relative to the many sibling prover/validator tools, and no exclusions.
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 HeadARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("publish_index_head").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description reconciles the 'publish' verb with them by explaining that inputs are processed transiently and not stored, logged, or retained. It also discloses non-obvious routing behavior: compute:'browser' returns a browser delegation URL, gpu:true nodes always delegate, and the output is an AP2 artifact carrying execution_hash. Error handling 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scoping and compute-mode information is front-loaded, but the description opens with a redundant restatement ('Publish Index Head: OpenChainGraph compute node' followed immediately by 'Deterministic OpenChainGraph compute node') and spends significant space on a long FV-status hash URL and provenance prose. Several sentences are dense jargon that could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 describe the artifact output (AP2 artifact with execution_hash) and the browser-delegation URL case, and it points to describe_tool for the output schema. Given four parameters including a nested object, it is reasonably complete, missing only failure/edge behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 rather than adding syntax or semantics, though naming the upstream artifacts gives some meaning to the parent-hash chaining inputs. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Publish Index Head', a deterministic compute node that exports an AP2 artifact with execution_hash for chain provenance), so the agent knows the outcome. However, it never distinguishes this from close siblings like publish_fund_nav_head, publish_market_mark_head, or publish_model_risk_head, and the first sentences drift into compute-node jargon rather than the index-head semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives prerequisites indirectly by naming the upstream artifacts it consumes (art-646-compile-rebalance-evidence-pack, art-647-record-index-correction) and a hard constraint ('Use synthetic or anonymised inputs only'). But it never says when to choose this tool over alternatives such as record_index_correction or emit_chaingraph_artifact, leaving usage largely inferred.
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 HeadBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("publish_market_mark_head").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 useful non-annotation behavior: inputs are processed transiently and not stored/logged/retained, compute modes delegate server vs browser, gpu:true always delegates to browser, and the FV-status receipt verifies offline. This is meaningful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is dense but has redundancy, notably 'OpenChainGraph compute node (attestation_mandate). Deterministic OpenChainGraph compute node' repeats the framing, and the embedded FV-status URL and offline-verification aside are tangential to invocation. It is front-loaded on the key mode behavior, but several sentences could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object, provenance-chaining compute tool with no output schema, the description covers compute delegation, transient-input handling, upstream artifact chaining, and points the agent to describe_tool for the output shape. Privacy and provenance concerns are addressed; only the concrete meaning of the produced artifact remains underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explanation restates what the schema's 'compute' description already says and adds no syntax or format detail beyond it. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (attestation_mandate)' that exports an AP2 artifact with an execution_hash, which conveys the operation type. However, it never plainly states what a 'market mark head' is or why an agent would publish one, and it does not differentiate itself from the sibling family (publish_fund_nav_head, publish_index_head, publish_model_risk_head). The purpose is decipherable but only through inference from the compute-node boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through 'Consumes upstream artifacts from: art-560-oracle-price-aggregation' and the constraint to use synthetic/anonymised inputs, which tells the agent something about when this applies. But there is no explicit when-to-use vs sibling head-publishers, and no conditions distinguishing this tool from alternatives.
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 HeadBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("publish_model_risk_head").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 facts: deterministic execution, transient processing with no storage/logging/retention, the compute:auto vs browser delegation split, and the fact that a browser delegation URL is returned instead of a result. The offline-verifiable FV-status receipt is extra provenance context. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, and some content (transient processing, synthetic inputs) earns its place, but the description is a dense wall of jargon that repeats the compute-binding rules already in the schema and injects a raw URL and a 64-character hash that disrupt readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explaining the returned AP2 artifact and execution_hash, and it points to describe_tool for the output contract. Given full schema coverage, annotations, and named upstream dependencies, an agent has nearly everything needed to call it; only the internal structure of policy_parameters remains opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and this is the baseline case. The description's compute-mode explanation largely repeats the schema text, and for the opaque policy_parameters object it defers to an external manifest ('see the tool's manifest for field names') rather than adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 that exports an AP2 artifact with an execution_hash and consumes named upstream artifacts, which is more specific than the title alone. However, it never says plainly what the 'Model Risk Head' is or what decision it produces, and it does not distinguish itself from near-identical siblings such as publish_fund_nav_head, publish_index_head, and publish_market_mark_head.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies usage context by naming the upstream artifacts it chains from (art-453, art-489, art-562) and gives a hard constraint ('use synthetic or anonymised inputs only'), which is genuinely useful. It gives no explicit when-to-use vs when-not-to-use guidance and no routing to alternative publish_* tools.
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 RecomputeBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("rdarr_aggregation_recompute").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value on top: deterministic execution, transient processing with no storage or logging, server-side vs browser delegation semantics, and the export of an AP2 artifact carrying execution_hash for chain provenance. It still doesn't describe failure modes or how the FV-status receipt relates to a failed verification.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose comes first, but the narrative is dense with infrastructure jargon and the trailing full 64-hex FV-status path plus URL consume significant space without helping an agent decide or invoke. The 'Output schema: call describe_tool(...)' pointer is useful; the hash artifact is noise for selection purposes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers compute modes, chaining inputs and the artifact export, and redirects to describe_tool for the return shape. It still never explains the domain computation being performed or the attestation_mandate semantics an agent would need to supply sensible policy_parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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. The description largely duplicates the compute-mode enum semantics and adds nothing about chaining order or policy_parameters field naming, which the schema itself says to look up in the manifest. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title restate 'RDARR Aggregation Recompute' and the description frames it as an 'OpenChainGraph compute node (attestation_mandate)', which identifies the category but not what is actually being recomputed or how it differs from teammates like rdarr_quality_scorecard or run_kernel_vm. The bulk of the text is execution plumbing (compute modes, delegation) rather than a statement of the operation's purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is genuine usage guidance — 'Use synthetic or anonymised inputs only' and rules for choosing compute:'auto' vs 'browser' — but nothing tells the agent when to pick this tool over the many sibling recompute/aggregation tools, or what prerequisites exist before calling it.
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 ScorecardCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("rdarr_quality_scorecard").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, it discloses that inputs are processed transiently and not stored or logged, warns to use synthetic or anonymised inputs only, states determinism, and notes it exports an AP2 artifact with execution_hash for chain provenance. These are real behavioral facts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by infrastructure boilerplate (compute binding, Cloudflare Workers, FV-status hash, URL), while the core question of what the scorecard measures is never addressed. It is long and not front-loaded on the information 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.
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 is an open object whose fields are only said to be in 'the tool's manifest', which is not provided. For a nested-object node with no required parameters and no return description, the definition leaves key gaps, deferring the output schema to a separate describe_tool call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented in the schema, and the description largely repeats the compute-mode text. It adds no syntax or field guidance beyond noting that policy_parameters field names live in the tool's manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (RDARR Quality Scorecard) and labels it an OpenChainGraph compute node with an attestation_mandate, but never states what the scorecard actually scores or computes. The sibling rdarr_aggregation_recompute is not distinguished, so an agent cannot tell the two apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the compute modes ('auto' vs 'browser', gpu:true always delegating), but that is parameter behavior rather than when-to-use guidance. There is no statement of when this tool should be chosen over the related rdarr_aggregation_recompute or any other readiness/scoring sibling.
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 RecomputeCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_best_execution").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them: inputs are processed transiently and not stored, logged, or retained; compute modes ('auto'/'server'/'browser') and GPU delegation behavior; and the export of an AP2 artifact with execution_hash for provenance. These non-obvious behavioral traits are genuinely useful. It stops short of explaining failure modes or output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with redundancy ('OpenChainGraph compute node' repeated), a marketing URL, and a raw 64-hex FV-status path plus an aside ('a snapshot, not a subscription...'). The purpose is front-loaded, but several sentences do not earn their place and dilute the operative guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and four parameters (one nested), the description should carry more. It covers compute modes, privacy, and the provenance artifact, and it defers output shape to describe_tool, but it never explains what the recompute determines or how policy_parameters map to the decision function beyond 'See the tool's manifest.' Adequate, but with clear gaps for a compute tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 and adds no field-level meaning beyond the schema, which 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title ('Best-Execution NBBO Recompute') signal a recompute of best-execution/NBBO analytics, but the body never explains what the decision actually recomputes or what the output represents. It spends its opening on boilerplate ('OpenChainGraph compute node (analytics_mandate). Deterministic OpenChainGraph compute node') rather than elaborating the purpose, and it does not differentiate from the close sibling compute_best_execution_evidence_pack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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.' The compute-mode discussion explains execution mechanics, not when to choose this tool over alternatives like compute_best_execution_evidence_pack or verify_execution_hash. No when-to-use or when-not-to-use context is given.
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 RecomputationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavioral facts: inputs are processed transiently and not stored/logged/retained, gpu:true nodes always delegate to the browser, and the output is an AP2 artifact carrying an execution_hash. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is reasonably front-loaded, but the text is cluttered with infrastructure boilerplate and a long trailing FV-status sentence containing a full hash URL that reads as a receipt artifact rather than guidance. Several sentences could be trimmed without losing decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations cover the safety profile and the schema covers all four parameters, so the remaining burden is explaining the actual computation. The description defers field names to an external manifest and never says what a bordereau recomputation evaluates or returns, which leaves the core domain purpose under-specified for a compute node with an opaque policy_parameters object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 notes that policy_parameters field names live in the tool's manifest, adding only marginal value. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line pair the verb 'recompute' with the resource 'bordereau', so the basic action is identifiable. However, the description immediately pivots to execution plumbing (OpenChainGraph compute node, analytics_mandate) rather than what a delegated authority bordereau recomputation actually produces, and it never distinguishes itself from the many other recompute_* siblings. Purpose is legible but shallow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this tool versus alternatives, no prerequisites, and no exclusions. The compute-mode discussion (auto/server/browser) is parameter behavior, not usage guidance, so an agent still cannot tell when recompute_bordereau is the right choice over sibling recompute tools.
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 RecomputeBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_ccd2_aprc_annex3").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value by disclosing determinism, transient processing with no storage or logging, the browser-delegation behavior for gpu:true nodes, and the AP2 artifact with execution_hash. That goes meaningfully beyond what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, but contains redundancy ('OpenChainGraph compute node' is stated twice), plus a raw URL and a long FV-status hash path that add bulk without aiding invocation. Several sentences could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 points to describe_tool and mentions the AP2 artifact/execution_hash return. But policy_parameters is an untyped object whose field names are deferred to 'the tool's manifest,' which the agent cannot fetch, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 largely restates the compute-mode semantics already in the schema and adds nothing about the shape or required field names of policy_parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (recompute) and resource (CCD2 Annex III APRC) plus the container type (OpenChainGraph compute node). However, 'APRC' and 'CCD2 Annex III' are unexplained domain jargon, and with hundreds of siblings (e.g. classify_annex3_decisioning_obligations, compute_reg_z_appendix_j_apr) there is no differentiation telling the agent what makes this recompute distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage through the compute-mode guidance and the 'use synthetic or anonymised inputs only' constraint, which is a genuine use restriction. But it never states when to pick this tool over the many other annex3/APR recompute siblings, and gives 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.
recompute_ccp_default_waterfallCCP Default Waterfall RecomputationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_ccp_default_waterfall").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, transient processing with no storage/logging/retention, and that it exports an AP2 artifact carrying execution_hash for chain provenance. The compute-mode routing behavior is also disclosed. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode paragraph is front-loaded and useful, but the text is padded with provenance boilerplate (an open URL, an FV-status snapshot URL, and the 'snapshot, not a subscription' aside) and repeats the title verbatim. The trailing pointer to describe_tool is a reasonable structural cue but the overall length is larger than the informational payload warrants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters and no output schema, the description covers compute routing, privacy posture, and the exported artifact, but never states what the recomputation returns numerically or what policy_parameters keys are expected (deferred to an unlinked manifest). An agent could invoke it but would not know what result to expect or how to populate the core inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 merely duplicates the schema's own enum description. It adds no field-level meaning for the chaining arrays, and policy_parameters fields are deferred to an external manifest, which the schema does not resolve either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title give a specific verb+resource (recompute the CCP default waterfall), and the description repeats that label verbatim, but the body never explains what the recomputation actually does or what a CCP default waterfall comprises. It also fails to distinguish this tool from close siblings such as recompute_payment_waterfall, recompute_trustee_report_waterfall, or size_ccp_default_fund_cover2, so an agent cannot tell them 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.
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. There is no statement of when to pick this tool over the many other waterfall/CCP recompute siblings, and no prerequisites for chaining (parent_hashes/parent_tool_ids) are described as a usage 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 RecomputationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_certified_payroll_pwa").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond-annotation context: deterministic execution, transient input processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for chain provenance. It stops short of describing the decision function or error 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but a large fraction of the text is generic OpenChainGraph boilerplate (spec URL, FV-status hash, receipt disclaimer) and a verbatim echo of the compute-mode enum already in the schema. The domain-specific payload is thin relative to that overhead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 object and no output schema, the description should explain what the recomputation returns and what policy_parameters must contain. Instead it delegates to describe_tool() and an external manifest, leaving the actual certified-payroll computation semantics unexplained. The provenance/privacy context is complete, the domain context is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 re-explains the compute enum that the schema already documents in more detail; it adds nothing about parent_hashes/parent_tool_ids ordering or the policy_parameters fields (which the schema itself defers to a manifest). Repeated rather than additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The lead sentence ('Certified Payroll / Prevailing Wage Recomputation: OpenChainGraph compute node') largely restates the tool name plus a platform label, and never says what the recomputation actually produces or checks. With ~40 recompute_* siblings, nothing here distinguishes it from recompute_fund_nav or recompute_payment_waterfall. The verb+resource is present but the scope is vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real operational guidance for the compute binding (auto/server/browser, gpu:true always delegates) and a privacy condition ('Use synthetic or anonymised inputs only'). But there is no when-to-use-this-vs-an-alternative guidance, no prerequisites, and no exclusions, which matters given the crowded recompute sibling set.
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 RecomputeBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_corporate_action_entitlement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds genuinely useful behavior beyond that: transient processing with no storage/logging/retention, client-side delegation semantics for browser mode, and an AP2 artifact export with execution_hash. It does not explain the execution model (kernel vs browser) at a level that reveals 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence duplicates the title, and a large share of the text is boilerplate chrome: a documentation URL, a full FV-status hash and receipt disclaimer, and a pointer to describe_tool. The useful content (compute modes, privacy, upstream artifact) is buried among these.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object compute tool with no output schema, the description covers privacy, compute delegation, and provenance adequately and routes to describe_tool for the output shape. It leaves the semantics of the actual computation and the policy_parameters field names undefined, which is the most important gap for calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 text. The one added value is framing parent_hashes/parent_tool_ids as a chaining mechanism, but policy_parameters field names are punted to 'the tool's manifest'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and the opening line restate 'Corporate Action Entitlement Recompute' plus a category label ('OpenChainGraph compute node (compliance_mandate)'), which is closer to tautology than an explanation of what is actually recomputed. It never says what an entitlement recompute is, what dataset it operates on, or how the result differs from sibling recompute tools. The upstream reference to the DTCC CA ISO 20022 validator implies 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real invocation guidance for the compute mode (auto/server/browser, gpu:true always delegates) and a hard input constraint ('use synthetic or anonymised inputs only'), but says nothing about when to choose this tool over sibling compute/recompute tools or what prerequisites must hold. Usage is implied by the upstream-artifact chain rather than stated.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_csdr_penalty").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds real behavioral context beyond them: compute:"browser" returns a delegation URL instead of a result, gpu:true nodes always delegate, inputs are transient and unretained, and an AP2 artifact with execution_hash is exported for chain provenance. That is meaningful disclosure of non-obvious runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with platform boilerplate (Workers/kernel binding, retention language, an FV-status URL and a 64-hex digest) before any statement of purpose, and the purpose never actually arrives. The genuinely useful line about browser delegation is buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 and a free-form policy_parameters object, the description should explain what result is produced and what fields the decision function needs; instead it points to a manifest and describe_tool and only says an AP2 artifact is exported. An agent knows how execution is routed but not what it is computing or what to pass.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (with more detail on compute than the prose). The description adds nothing to those definitions and defers policy_parameters field names to "the tool's manifest," leaving the core input opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening "CSDR Penalty Recompute (Caller Reference Price): OpenChainGraph compute node (compliance_mandate)" essentially restates the name and title, then pivots to platform mechanics. It never explains what the CSDR penalty recomputation actually does or how it differs from the sibling calculate_csdr_penalty, so an agent cannot distinguish them 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is input guidance ("use synthetic or anonymised inputs only") and a description of the compute modes, but no when-to-use/when-not-to-use guidance and no routing to or away from alternatives like calculate_csdr_penalty. Tool selection must be inferred 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.
recompute_erc4337_userop_mathERC-4337 UserOperation MathBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_erc4337_userop_math").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive, already provided), the description discloses that inputs are processed transiently and not stored or logged, where execution happens (Cloudflare Workers vs browser delegation), and that an AP2 artifact with execution_hash is exported. That is meaningful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description repeats itself ('OpenChainGraph compute node (payment_policy). Deterministic OpenChainGraph compute node.') and embeds a long opaque FV-status hash path and a landing-page URL that an agent cannot act on. Core purpose is buried under boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers compute mode, privacy, and artifact export, but with no output schema it never describes what is returned beyond 'an AP2 artifact with execution_hash', and it leaves the actual computation and the policy_parameters fields undefined. Adequate for the plumbing, incomplete for the decision the tool asks the agent to make.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already fully documented and the description mostly restates them. For policy_parameters, a free-form object, the description only defers to 'the tool's manifest for field names', adding no real field-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (ERC-4337 UserOperation math) and identifies the node family (payment_policy compute node), but it never explains what the math actually computes (hash? gas? signature domain?). Most of the text is platform boilerplate, and with dozens of recompute_* siblings there is no differentiation from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives genuine operational guidance on the compute parameter (auto/server/browser and gpu:true behavior) and a hygiene rule ('use synthetic or anonymised inputs only'). However, it says nothing about when to choose this tool over sibling recompute tools, so the 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.
recompute_erc7540_request_accountingERC-7540 Async-Vault Request AccountingBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_erc7540_request_accounting").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/non-destructive, the description adds meaningful behavior: deterministic server-side vs browser delegation, transient input handling (not stored, logged, or retained), and the export of an AP2 artifact carrying execution_hash for provenance, plus an offline-verifiable FV-status receipt. It stops short of describing what the computation actually produces 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool name and then a large block of platform boilerplate (Cloudflare Workers, GPU delegation, external URL, FV-status JSON path, describe_tool pointer). The tool-specific value is a small fraction of the text, and the run-on sentence mixing compute routing with data-hygiene guidance reduces scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does cover the return artifact (AP2 with execution_hash) and defers detail to describe_tool, which is adequate. However, for a 4-parameter compute tool with a nested policy_parameters object, it never tells the agent what the recomputation means or what a valid policy_parameters payload looks like, so the description is only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 re-states the compute-mode semantics already documented in the schema enum description, and only adds value by pointing at the tool manifest for policy_parameters field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state the verb+resource (recompute ERC-7540 async-vault request accounting), but the description itself spends its opening on infrastructure ('OpenChainGraph compute node (payment_policy)') and never explains what accounting is being recomputed or for which vault lifecycle stages. It also never distinguishes itself from the close sibling recompute_erc4626_vault_share_math, leaving the agent to guess which vault-math 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute modes and adds a data-hygiene instruction ('Use synthetic or anonymised inputs only'), but gives no when-to-use context, no prerequisites, and no comparison against the many sibling recompute_* tools. The one piece of routing advice is about the compute parameter, not about tool selection.
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 RecomputeARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_exchange_fee_tier_invoice").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 non-stored processing, synthetic-input requirement, and an exported AP2 artifact with execution_hash for provenance. This is meaningfully more than 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded, but the body is cluttered with the OpenChainGraph boilerplate, a long FV-status URL and hash, and a snapshot disclaimer that do not help an agent invoke the tool. Every sentence is not fully earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly points to describe_tool and covers compute delegation and provenance. But the key decision-input (policy_parameters field names) is left unspecified and usage/exclusion guidance is absent, leaving gaps for a compliance compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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, and it defers policy_parameters field names to 'the tool's manifest', adding no syntax detail. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (recompute Exchange Access-Fee / Maker-Taker tier invoice) and identifies it as an OpenChainGraph compute node in the compliance_control family. It is clearly distinguishable from the sea of sibling compliance tools by domain, though it does not explicitly contrast against any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the compute-mode selection (auto/server/browser, gpu:true always delegates) and points to describe_tool for the output schema, which is useful operational guidance. However, it never says when an agent should choose this tool over alternatives or what preconditions (e.g. upstream artifacts) it expects.
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 FeesBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_fund_fees").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely new behavioral facts: transient processing with no storage/logging/retention, deterministic computation, client-side delegation URL behavior, and export of an AP2 artifact with execution_hash for chain provenance. This is meaningful context beyond the structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool name and node type, but it packs in marketing-style provenance (an .html URL, a long FV-status hash path) and an instruction to call describe_tool for the output schema. These earn their place only partially, and the core computational purpose is buried behind execution-mode jargon.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compute node with no output schema, the description does cover compute modes, chaining inputs, input-transience, and artifact provenance, and it points to describe_tool for the return contract. Still, the actual decision-function semantics behind policy_parameters are delegated to an unreferenced manifest, leaving the computation itself under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 and alludes to chaining semantics but adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool as an 'OpenChainGraph compute node (analytics_mandate)' that recomputes fund fees, but most of the text is spent on execution infrastructure (server vs browser delegation) rather than what the computation actually produces. It does not distinguish itself from near-siblings like recompute_fund_nav or compute_fund_expense_ratios, so an agent gets only a vague sense of the tool's specific role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is explicit guidance on the 'compute' mode choice and a constraint to 'use synthetic or anonymised inputs only,' which is useful. However, there is no statement of when to prefer this tool over the many sibling recompute/compute tools, and no prerequisites beyond the input-safety note. Agents are left to infer selection 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.
recompute_garnishment_stackMulti-Garnishment Stacking RecomputationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_garnishment_stack").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs are required, execution is deterministic, and gpu:true nodes always delegate to the browser. These are meaningful disclosures an agent could not read off the annotations. It still omits failure modes and what the exported AP2 artifact contains beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long but poorly front-loaded: after a title restatement it leads with infrastructure boilerplate, a documentation URL, and a full /fv-status/ SHA-256 path that is irrelevant to invoking the tool. The closing 'Output schema: call describe_tool(...)' is self-referential filler rather than information. Several sentences do not earn their place for an invoking agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic compute tool with a nested open-ended policy_parameters object and no output schema, the definition leaves the essential questions unanswered: what the recomputation computes, what fields policy_parameters must carry, and what the result looks like. Deferring the output schema to describe_tool is acceptable only if the purpose and inputs are otherwise explained, which they are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already fully documented in the schema, and the description's compute-mode paragraph largely duplicates the schema's 'compute' description. The one open gap — policy_parameters, the actual decision inputs — is punted to 'See the tool's manifest for field names', adding no field-level meaning. Baseline 3 for high coverage with no added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('Multi-Garnishment Stacking Recomputation') and then labels it an 'OpenChainGraph compute node (analytics_mandate)' — infrastructure taxonomy, not purpose. It never says what a garnishment stack recomputation actually does (which stacking rules, ordering, caps, or jurisdictions), so an agent learns nothing beyond the tool name. There is no differentiation from siblings like recompute_payment_waterfall or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to pick this tool versus the many other recompute_* / waterfall tools in the sibling list. The only conditional guidance is about compute mode selection ('auto'/'browser'), which is parameter usage rather than tool selection. No prerequisites, triggering scenarios, 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.
recompute_lease_schedule_asc842_ifrs16Lease Schedule Recompute — ASC 842 / IFRS 16CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_lease_schedule_asc842_ifrs16").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false. The description adds genuinely useful non-annotation context: server-side vs browser execution semantics, transient processing with no storage/logging retention, and AP2 execution_hash export. However, the 'Deterministic' claim and 'compliance_control' label are vague, and the retention/privacy language is partly repeated between the 'transiently' sentence and the 'synthetic inputs' sentence. No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, most of which are infrastructure boilerplate that applies to every OpenChainGraph node rather than this tool specifically. The actual domain purpose (lease schedule recompute) is buried in the title. The URL and FV-status hash are raw identifiers that consume attention without explaining the tool's job.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 referenced via describe_tool and rich annotations, the definition covers execution modes, retention, and provenance export, which is enough to invoke without erroring. But it omits the input semantics (what a lease schedule takes: dates, rates, payment terms) and any output shape hint, leaving the agent to discover the domain contract elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 high-level semantics of compute:'auto'/'browser' and GPU delegation, which is already in the compute parameter's schema description. It does not explain what policy_parameters fields are expected for a lease schedule, referring instead to 'the tool's manifest'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line state the domain (ASC 842 / IFRS 16 lease schedule recompute), but the description is dominated by OpenChainGraph infrastructure boilerplate (compute node, GPU delegation, AP2 artifacts, FV-status receipts) rather than the recompute's purpose. It never says what inputs go in or what output is produced beyond 'compute the response' and 'Exports an AP2 artifact'. The sibling list contains many recompute_* tools, and nothing here distinguishes this from, e.g., recompute_bordereau or build_amortization_schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives. The only conditional text is about compute mode ('auto' vs 'browser'), which is about execution mechanics, not task selection. It does say 'Use synthetic or anonymised inputs only', which is a constraint but 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.
recompute_mla_mapr_actuarialMLA MAPR Actuarial RecomputeCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_mla_mapr_actuarial").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server-vs-browser execution rules for compute:"auto"/"browser", the gpu:true delegation rule, transient processing with no storage/logging/retention, and the AP2 artifact with execution_hash for chain provenance. It stops short of auth requirements or rate limits, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long and heavily weighted toward platform boilerplate (URL, FV-status receipt snapshot disclaimer, describe_tool pointer) relative to the domain content. The first sentence merely echoes the title, so the definition is not front-loaded with the most useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations and the 100%-covered schema carry safety and parameter meaning, and the describe_tool pointer offloads the (absent) output schema. However, for a node whose entire value is a decision function, the description defers field names to "the tool's manifest" and never describes the computation, leaving a real gap for a 4-parameter tool with nested policy_parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already fully documented in the schema. The description's compute-mode sentence duplicates the schema's own text and adds no new syntax or format detail. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ("MLA MAPR Actuarial Recompute") and labels it a "deterministic OpenChainGraph compute node (compliance_mandate)" without ever saying what the computation actually does or what it produces for MLA/MAPR. An agent cannot distinguish it from the sibling compute_mla_mapr or classify_mla_charge_inclusion on the basis of this text. This is close to tautology dressed in platform boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition that selects this tool over compute_mla_mapr, and no prerequisites stated. The only actionable directive is "Use synthetic or anonymised inputs only," which is an input 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.
recompute_payment_waterfallSecuritisation Payment Waterfall RecomputationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_payment_waterfall").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: determinism, transient processing with no storage/logging/retention, a requirement to use only synthetic or anonymised inputs, export of an AP2 artifact carrying execution_hash for chain provenance, and the gpu:true browser-delegation rule. These are real operational facts an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense boilerplate: it restates the title, then layers a documentation URL, an FV-status hash path, an 'output feeds' pointer, and a describe_tool redirection on top of the useful compute-mode and privacy notes. The selection-relevant content is buried and much of the metadata 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.
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 point the agent to describe_tool for output structure and covers chaining via execution_hash and parent_hashes, which is adequate for a compute node. However, it never conveys the domain semantics of the waterfall computation itself, so an agent knows how to run it but not what result to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 mentions chaining implicitly, but adds no format or value detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a verb (recompute) and resource (payment waterfall) and identifies it as an OpenChainGraph compute node under analytics_mandate, but never explains what the securitisation waterfall actually recomputes (tranche ordering, interest/principal allocation, etc.). It also does not distinguish this from close siblings like loan_servicing_waterfall_recompute, trustee_report_waterfall, ccp_default_waterfall, or pe_waterfall_lp, so an agent cannot tell them 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.
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 waterfall recompute siblings, nor any stated prerequisites or exclusions. The compute-mode discussion (auto/server/browser, gpu:true delegation) is invocation mechanics rather than selection guidance, and it duplicates the schema.
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 RecomputeBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_pe_waterfall_lp").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them: compute mode semantics (server vs browser delegation, gpu:true always delegates), transient non-retained processing, and an AP2 artifact export with execution_hash. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is dominated by infrastructure boilerplate (Cloudflare Workers, gpu flags, FV-status path and a 64-char hash, an HTML URL) that does not help an agent choose or call the tool. Roughly half the text is noise for the decision at hand.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry more, and it does explain the exported artifact, but the decision function's own inputs (policy_parameters fields) are deferred to an unspecified manifest. For a 4-param nested-object tool this leaves a meaningful gap, though compute/parent chaining is adequately covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 policy_parameters contents beyond "see the tool's manifest," leaving the key input object opaque in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first clause give a specific verb+resource ("PE Distribution Waterfall LP-Side Recompute") and the "LP-Side" qualifier distinguishes it from the other waterfall siblings (recompute_payment_waterfall, compute_loan_servicing_waterfall_recompute, recompute_trustee_report_waterfall). However, the body never says what the recompute actually computes or what inputs/policy_parameters drive it, so the purpose is named but not explained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 adjacent waterfall/recompute tools. The only usage instruction is "Use synthetic or anonymised inputs only," which is an input constraint rather than a selection guideline.
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 RecomputationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_section16b_profit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 useful context beyond them: transient processing with no storage/logging/retention, the AP2 artifact with execution_hash for chain provenance, and the server-vs-browser delegation behavior. This exceeds the annotation bar without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with repeated framing ('Deterministic OpenChainGraph compute node' after the title restatement) and pads with a full URL, a 64-char FV-status hash path, an offline-verification caveat, and a 'call describe_tool(...)' instruction. Several sentences do not earn their place relative to zero added explanation of the actual computation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, the core input is an open nested object ('policy_parameters') whose fields are deferred to an external manifest, and the description never says what the short-swing profit recomputation consumes or returns. For a domain-specific compute node 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.
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 merely paraphrases the schema's own 'compute' enum docs. It adds no syntax or example for 'policy_parameters' beyond 'See the tool's manifest for field names,' which is a deferral 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title identify a specific verb+resource (recompute Section 16(b) short-swing profit), but the description body never explains the computation itself — it restates the title and then pivots to compute-infrastructure boilerplate. Nothing distinguishes it from the many sibling recompute_* nodes beyond the domain keyword 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.
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.' The compute-mode paragraphs describe parameter behavior, not when to choose this tool over alternatives like compute_gl_tieout_recompute or other recompute_* siblings. No when-to-use or when-not-to-use guidance is given.
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 RecomputeARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_stablecoin_reserve_3source").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond annotations: server vs browser delegation semantics, transient input handling with no logging/retention, synthetic-input-only guidance, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool identity and compute semantics, but the description is dense with provenance/URL/FV-status boilerplate that reads as generated metadata rather than agent-facing guidance. Some sentences (e.g. the FV-status snapshot note) do not help invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema and 100% schema coverage, the description covers execution mode, data-handling, artifact export, and points to describe_tool for the return shape. It is nearly complete, missing only explicit routing to sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a full enum description for compute and explanations of parent_hashes, parent_tool_ids, and policy_parameters. The description repeats the compute-mode behavior but does not add parameter meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (recompute) and resource (stablecoin reserve, 3-source) and identifies the OpenChainGraph compute-node context. It is clear what the tool does, though it does not explicitly distinguish itself from close siblings like simulate_stablecoin_reserve 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is a deterministic compute node for recomputing a stablecoin reserve from three sources, but it never states when to use it versus alternatives like simulate_stablecoin_reserve or precheck_reserve_attestation. Usage is only inferable from the name and framing.
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 RecomputeBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_stock_loan_rebate_fee").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: deterministic execution, transient processing with no storage/logging/retention, browser delegation URL returns, and an AP2 artifact export carrying execution_hash for chain 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Most of the text is generic OpenChainGraph boilerplate (privacy notice, FV-status hash URL, offline-verification caveat, describe_tool pointer) that would be identical across hundreds of nodes, and it repeats the compute-mode rules already in the schema. The tool-specific content is thin relative to the length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose core inputs live in an opaque 'policy_parameters' object with no field descriptions, the description should really explain the decision-function inputs, yet it defers to an external manifest/describe_tool. Privacy, determinism, provenance, and compute modes are covered, but the central parameter payload remains undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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) are already well documented in the schema. The description restates the compute-mode semantics and only gestures at policy_parameters ('See the tool's manifest for field names'), so it adds little beyond the schema baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title already state the resource and operation (stock-loan rebate/fee recompute), and the description adds only that this is a 'deterministic OpenChainGraph compute node (compliance_control)'. It never explains what the rebate/fee calculation actually does or how it differs from typed siblings like compute_mlr_rebate or recompute_exchange_fee_tier_invoice, so the purpose remains vague 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives real guidance on compute-mode selection (auto/server/browser, gpu delegation) and a usage constraint ('use synthetic or anonymised inputs only'). However it offers no when-to-use/when-not framing against the many sibling recompute 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.
recompute_tmpg_fails_chargeTMPG Fails-Charge RecomputeBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_tmpg_fails_charge").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnly/idempotent/non-destructive already in annotations, the description adds genuine behavioral context: determinism, default server-side execution with a registered kernel, browser delegation for gpu:true or compute:'browser', transient non-retained input handling, and an exported AP2 artifact carrying execution_hash for provenance. That is meaningful disclosure beyond the annotations, though return-format specifics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode and privacy sentences earn their place and the deterministic/artifact facts are front-loaded well, but the long FV-status hash path and the raw URL add bulk without helping an agent decide or invoke the tool. Structure is adequate but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 tool is a nested-object compute node, so the description should anchor what is computed and returned; instead it points to describe_tool and the manifest. It covers execution mode, privacy and artifact export adequately, but the decision-function inputs remain undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 chaining hashes) are already documented in the schema; the description only restates the compute-mode story. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific verb (recompute) and a domain-specific resource (TMPG fails-charge) that is distinguishable from siblings, but it never explains what the recompute actually calculates. Most of the text describes the hosting/compute infrastructure rather than the tool's function, and it defers field semantics to 'the tool's manifest', leaving the core purpose opaque.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one real usage constraint ('Use synthetic or anonymised inputs only') and explains the compute-mode choice, which is useful. However, there is no guidance on when to pick this recompute over the many sibling recompute_* tools, 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.
recompute_trustee_report_waterfallSecuritization Trustee-Report Waterfall RecomputationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_trustee_report_waterfall").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered, but the description adds genuinely useful behavioral facts beyond them: deterministic execution, transient processing with no storage/logging/retention, an explicit 'synthetic or anonymised inputs only' constraint, and export of an AP2 artifact with execution_hash for chain provenance. That is meaningful context for a compute node, though it is delivered 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is dominated by platform meta-text (kernel registration, Cloudflare Workers, delegation URLs, FV-status hash, an external URL) and buries the actual function of the tool. It is not front-loaded on what the tool computes, and several sentences exist to describe the runtime rather than the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output contract is explicitly deferred to describe_tool, which is acceptable given no output schema, and the execution/safety contract is well covered. However, for a domain-complex securitization waterfall the description leaves both the input semantics of policy_parameters and the meaning of the recomputation unexplained, so an agent knows how the node runs but not what it computes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 text merely echoes the schema enum description. The description adds nothing about policy_parameters contents beyond deferring to 'the tool's manifest', which is not available here, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence is essentially the title restated plus a platform label ('OpenChainGraph compute node (analytics_mandate)'), and the description never explains what a trustee-report waterfall recomputation actually does. An agent can infer a securitization cashflow recompute from the name, but the description contributes no domain specifics and does not distinguish this from siblings such as compute_loan_servicing_waterfall_recompute, recompute_payment_waterfall, or recompute_ccp_default_waterfall.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The compute-mode rules ('auto' vs 'browser' vs gpu:true delegation) are parameter usage, not tool-selection guidance. There is no statement of when to reach for this tool instead of the many other waterfall/recompute siblings, 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.
recompute_x402_eip712_digestx402 EIP-712 Digest RecomputerCRead-onlyIdempotentInspect
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. Consumes upstream artifacts from: art-700-authorization-payload-linter. 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_x402_eip712_digest").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, but the description goes well beyond them: transient processing with no storage, logging, or retention, the 'use synthetic or anonymised inputs only' constraint, the server-vs-browser delegation rule for gpu:true nodes, and the fact that it exports an AP2 artifact carrying execution_hash. That is meaningful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with a near-duplicate pair of sentences ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.') and pads with a documentation URL and a long FV-status hash that an agent cannot act on. Useful content is buried behind boilerplate rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters object, the description does at least indicate the artifact export shape (AP2 artifact with execution_hash) and that the output feeds a downstream verifier. However it never explains what the digest output looks like or which policy_parameters fields the decision function expects, leaving real gaps for a four-parameter compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 notion ('consumes upstream artifacts') and no field-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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name and title ('x402 EIP-712 Digest Recomputer: OpenChainGraph compute node... Deterministic OpenChainGraph compute node') without ever stating in plain terms what is computed or for which payload. It does add differentiating context via the upstream/downstream artifact chain (art-700 authorization-payload-linter in, art-591 x402-signer-recovery-verifier out), which helps place it among x402 siblings, but the core verb+resource remains inferred 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.
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 recompute_x402_permit2_digest, decode_x402_payment, or verify_x402_signer_recovery. The compute-mode discussion is operational detail, not routing guidance, 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.
recompute_x402_permit2_digestX402 Permit2 Evidence RecomputerBRead-onlyIdempotentInspect
X402 Permit2 Evidence 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, art-612-erc2612-permit-binding-verifier. Open at: https://ainumbers.co/chaingraph/art-699-x402-permit2-evidence-recomputer.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("recompute_x402_permit2_digest").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior: 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. These are traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is buried under branding ('OpenChainGraph compute node (compliance_control)') repeated twice, and the FV-status paragraph with a 64-character hash and a statement about offline receipt verification is largely irrelevant to selecting or invoking the tool. Genuinely useful content (compute modes, privacy, output feeds) is interleaved with bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description does cover privacy, compute routing, and artifact export, and it points to describe_tool for the output schema. What is missing is the core computational contract — what digest is produced and what policy_parameters must contain — which is punted to an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the compute-mode wording in the description largely duplicates the schema's own enum description. The one incremental piece is that policy_parameters field names are deferred to 'the tool's manifest', which adds a pointer but no actual semantics — 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool only as a 'Deterministic OpenChainGraph compute node' for compliance_control and never states in prose what it actually computes (a Permit2 typed-data digest) — the agent must infer that from the tool name. It also fails to differentiate itself from the near-identical sibling recompute_x402_eip712_digest. The purpose is recoverable 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is real conditional guidance on compute mode (auto/server/browser) and an explicit constraint to use synthetic or anonymised inputs only, plus a note that output feeds two named verifier tools. However, there is no statement of when to choose this tool over recompute_x402_eip712_digest or the other x402 recompute siblings.
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 ReconcilerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("reconcile_aml_lookback_completeness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond-schema behavior: compute:"auto" runs server-side for gpu:false nodes with kernels, compute:"browser" returns a delegation URL, gpu:true always delegates, inputs are processed transiently and not stored or logged, and it exports an AP2 artifact with execution_hash plus an offline-verifiable FV-status receipt. That is substantive operational disclosure well past what the annotations carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but misallocated: the opening clause is redundant with the name, and the bulk of the text is infrastructure boilerplate (compute binding, FV-status path, URL) while the actual function is never stated. It is not concise in the sense of earning each sentence — several sentences serve platform mechanics rather than tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 what comes back; it partially does so (AP2 artifact with execution_hash, delegation URL for browser mode). However, for a compliance_control compute tool with a nested policy_parameters object, it gives no indication of what the completeness result contains or how to read it, leaving the core outcome underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 enum description in the schema rather than extending it, and policy_parameters is deflected to "the tool's manifest for field names" instead of clarifying semantics. No added meaning beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name ("AML Lookback Completeness Reconciler: OpenChainGraph compute node (compliance_control)") and then pivots entirely to infrastructure mechanics. It never says what the reconciliation actually computes — e.g., that it checks whether the AML lookback population is complete against expected sourcing — nor distinguishes 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.
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-like statement is "Use synthetic or anonymised inputs only," which is an input constraint rather than routing advice. 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.
reconcile_commission_statementCommission Statement ReconcilerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("reconcile_commission_statement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, synthetic or anonymised inputs should be used, and an AP2 artifact with execution_hash is exported for provenance. The gpu:true-always-delegates and browser-delegation behavior is also disclosed. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated and duplicative, opening with 'OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.' and restating compute-mode mechanics already in the schema. The FV-status URL/hash sentence and the 'open at' link 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex provenance-chaining node with no output schema, the description covers infrastructure, chaining inputs/outputs, and artifact export, which is reasonably complete on mechanics. It still omits the actual reconciliation logic and the detailed shape of the exported artifact, leaving core functional context thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 chaining semantics ('Consumes upstream artifacts', execution_hash values) but adds no syntax or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'Commission Statement Reconciler' compute node and reveals its lineage (consumes from validate_commission_hierarchy, feeds amortize_asc606_commissions), which hints at function. But it never states in plain terms what reconciliation means here or what it produces beyond an AP2 artifact. The name/title carry most of the actual purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 reconcile_* or validate_commission_hierarchy tools. The only conditional logic is compute-mode selection (auto/server/browser), 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.
reconcile_emir_pairingEMIR Counterparty Pairing ReconcilerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, yet the description adds genuine context beyond them: deterministic execution, server-vs-browser compute routing, transient processing with no storage/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loading is weak: the lead sentence is a title restatement and the second sentence repeats 'Deterministic OpenChainGraph compute node' from the first. Much of the body is boilerplate replicated in the schema, and the trailing FV-status URL is a long tail that crowds out substantive content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry more of the result semantics; it discloses only that an AP2 artifact with execution_hash is exported. The decision-function inputs are opaque (deferred to a manifest), so an agent cannot fully understand what pairing is reconciled or what a result contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 meaning; it even defers policy_parameters field names to an unseen manifest, though the compute-mode text echoes the schema enum.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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, then pivots to generic OpenChainGraph infrastructure. An agent can infer 'reconcile EMIR counterparty pairing' from the name, but the description never explains what the reconciliation actually does or how it differs from siblings like adjudicate_emir_reconciliation or age_emir_reconciliation_breaks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 adjacent EMIR/reconciliation siblings. The only operational directive is 'Use synthetic or anonymised inputs only,' and the downstream pointer 'Output feeds: art-157-emir-lifecycle-event-validator' is the single routing hint.
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 ReconcilerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("reconcile_erc8056_multiplier").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 browser-mode returns a delegation URL instead of a result, and that an AP2 artifact with execution_hash is exported for provenance. These are meaningful traits an agent could not infer from the structured fields, though the execution/delegation semantics could be crisper.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the identifier, but the opening is redundant ('OpenChainGraph compute node (collateral_mandate). Deterministic OpenChainGraph compute node.') and the full page URL plus a long FV-status hash path consume space without helping tool selection. The compute-mode sentences largely repeat the schema enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object, no-output-schema tool, the description covers data-handling and provenance but never states what the reconciliation produces; it only points at describe_tool for the output schema. Given the complexity, the operational picture is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds only a general note that inputs are processed transiently and defers policy_parameters field names to 'the tool's manifest', so it neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title convey a verb+resource (reconcile an ERC-8056 multiplier), but the description body never explains what reconciling a multiplier actually computes or returns; it devotes its space to compute-node plumbing. It also does not distinguish this node from the many sibling compute_* tools (e.g. compute_erc2981_royalty), so an agent cannot route confidently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one real usage constraint ('Use synthetic or anonymised inputs only') and explains the compute-mode routing, but that routing guidance duplicates the schema's enum description. There is no statement of when to prefer this node over alternatives such as run_chain, run_kernel_vm, or other compute nodes.
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 ReconcilerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("reconcile_mpp_subscription").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL, and the output is an AP2 artifact carrying execution_hash for chain provenance. That is meaningful context beyond the structured fields, though the FV-status/hash boilerplate adds noise rather than transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with repeated boilerplate ('OpenChainGraph compute node' twice), a raw HTML URL, and a 64-character FV-status hash that no agent can act on. The useful chain-lineage sentences are buried after the preamble instead of front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chained compute node with no output schema (return shape delegated to describe_tool), the description supplies upstream/downstream artifact IDs and compute modes, which is enough to invoke it. It is incomplete on the decision function's semantics and on what policy_parameters must carry, which are the two things an agent most needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 is 3. The description does not add syntax or meaning beyond the schema — notably it never explains what policy_parameters should contain, deferring to 'the tool's manifest'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title establish the verb+resource (reconcile Tempo/MPP subscription & streaming settlement), and the description situates it in a chain (consumes art-36-tempo-mpp-agent-mandate, feeds cry-04-merkle-batch-verifier). However, it never actually describes what the reconciliation computes or decides — 'settlement_mandate compute node' is the only functional hint, so an agent cannot tell this apart from the many other reconcile_* siblings on substance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real input constraints ('Use synthetic or anonymised inputs only') and explains the compute-mode routing (auto/server/browser, gpu:true always delegates), which is useful invocation guidance. It stops short of saying when to choose this reconciler over alternatives such as decode_mpp_session, verify_tempo_mpp_voucher, or map_tempo_settlement.
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 ReconciliationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("reconcile_report_to_general_ledger").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 useful context beyond them: transient processing with no storage or logging, synthetic-inputs-only requirement, browser delegation behavior for gpu:true nodes, and an exported AP2 artifact carrying execution_hash. No contradiction with annotations. It stops short of describing failure modes or rate constraints, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long and front-loads infrastructure boilerplate rather than the tool's function; the FV-status URL and receipt prose consume space with no invocation value. A reader must wade through platform detail to reach anything actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object compute tool with no output schema, the description leaves the core operation unspecified and defers parameter details to an external manifest, so an agent lacks what it needs to call it correctly. It answers how execution is dispatched but not what result the reconciliation produces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum (redundant) and only gestures at policy_parameters field names by pointing to the manifest, adding little beyond the schema. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is dominated by platform mechanics (OpenChainGraph compute node, compute modes, AP2 artifacts, FV-status URLs) and never states what the reconciliation actually does. The only signal of purpose is the title restated, so an agent cannot distinguish this from dozens of sibling reconcile_* tools 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.
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 any alternative sibling, despite many nearby reconcile_* and compute_gl_tieout_recompute tools. The only usage-adjacent content is the compute-mode semantics, which describe execution mechanics 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.
reconcile_sii_ifrs17SII-IFRS 17 Reconciliation BridgerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("reconcile_sii_ifrs17").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds meaningful context beyond them: transient processing with no storage or logging, deterministic server-side kernel execution versus browser delegation, and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with redundant restatement ('OpenChainGraph compute node' appears twice), a raw FV-status file hash, a URL, and a pointer to describe_tool at the end. The genuinely useful facts about compute modes and data handling are buried under boilerplate instead of being front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 free-form nested policy_parameters object and no output schema, the description covers execution semantics and provenance well but omits the substantive reconciliation content - what policy inputs are needed and what the bridge actually resolves. An agent can invoke it mechanically but cannot predict its decision function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the upstream artifact id (art-180) that seeds parent_hashes, but leaves policy_parameters field names to 'the tool's manifest', matching the schema's own deferral rather than compensating for it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title convey a Solvency II to IFRS 17 reconciliation bridging operation, but the description body never explains what the reconciliation computes - it devotes nearly all text to OpenChainGraph compute plumbing, artifact export, and provenance. It also does not distinguish itself from close siblings such as check_ifrs17_risk_adjustment, validate_ifrs17_csm_rollforward, or reconcile_emir_pairing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives operational guidance on compute mode selection (auto/server/browser) and warns to use synthetic inputs only, but says nothing about when to choose this tool versus the many other IFRS 17 / reconciliation siblings. No prerequisites or exclusion criteria are stated beyond the synthetic-data constraint.
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 ReconcilerBRead-onlyIdempotentInspect
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-03-x402-settlement-modeler, art-60-agent-economy-runtime-fit-diagnostic. Output feeds: art-62-ap2-payment-receipt-verifier, 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("reconcile_x402_batch_settlement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 with genuinely useful context: deterministic execution, the auto/server/browser delegation rules including 'gpu:true nodes always delegate', and explicit transient-processing guarantees ('not stored, logged, or retained') with a synthetic-inputs-only caveat. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The front-loaded name/verb is fine, but the payload is bloated with low-value tokens: a raw URL, a 64-character FV-status hash, and a 'a snapshot, not a subscription' aside that no agent needs to select or call the tool. The description is a run-on sentence chain rather than an ordered set of call-relevant facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provenance, chaining, and data-handling are well covered, and there is no output schema so return values needn't be explained. But with policy_parameters left opaque and no output schema, an agent still cannot determine what inputs this node expects or what it returns, which is the core gap for a 4-parameter compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 nothing beyond the schema for compute (the schema's own enum text is actually richer), and for the critical policy_parameters object it punts entirely with 'See the tool's manifest for field names', leaving the actual decision inputs unknown.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific resource (x402 V2 batch settlement) and an action, but spends most of its words on compute plumbing (server/browser delegation, kernel registration) rather than what the reconciler actually decides. It also fails to distinguish itself from near-neighbours in the sibling list such as model_x402_settlement, decode_x402_payment, or recompute_x402_eip712_digest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement. The only routing signal is the upstream/downstream artifact listing (art-03 modeler, art-60 runtime fit in; art-62 receipt verifier, cry-04/05 out), which implies placement in a chain but leaves the agent to infer when this node 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.
recon_matchMatch a camt.053 statement against a counterpart expectation setARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| statement_xml | Yes | camt.053.001 XML statement document text. | |
| amount_tolerance | No | Absolute amount-match tolerance (default 0.01). | |
| expectations_csv | Yes | Counterpart expectations, CSV with header EndToEndId,Amount,Currency,Date. | |
| date_tolerance_days | No | Date-match tolerance in days (default 0). |
TDQS
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.
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.
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.
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.
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.
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 PositionsBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("record_fund_positions").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL, and an AP2 artifact with execution_hash is exported for provenance. This exceeds the annotation bar with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the node type and compute rules, but carries clutter: a full artifact URL and a 64-character FV-status hash path that do not help an agent decide or invoke the tool. Several sentences on provenance mechanics dilute the core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return shape (AP2 artifact with execution_hash) and that outputs are transient, which helps. But it leaves policy_parameters contents to an external manifest and never explains what the decision function records, leaving a meaningful gap for a 4-param nested-object tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 present in the schema and defers 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.
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 named for fund positions, but beyond restating the name/title it never explains what a fund position record actually contains or computes. It spends most of its length on compute-binding mechanics rather than the tool's purpose, and offers no differentiation from siblings like recompute_fund_nav or record_index_constituents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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' selection, gpu:true always delegating, 'use synthetic or anonymised inputs only'), which is more than none. However, it never says when to choose this tool over the many sibling compute/record 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.
record_index_constituentsRecord Index ConstituentsCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("record_index_constituents").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: auto/server/browser compute binding, that gpu:true always delegates, that inputs are transient and unretained, and that it exports an AP2 artifact with execution_hash for provenance. That is meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Substantive content is front-loaded (compute node, compute semantics, data handling), but there is filler: the external HTML URL and the long FV-status snapshot explanation about offline receipts crowd the definition 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, nested-object tool with no output schema, the description covers compute mode and provenance adequately but offloads the actual policy_parameters field names to "the tool's manifest" and the return shape to describe_tool, leaving real gaps in what 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.
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 semantics. The description repeats compute:auto/browser behavior but adds no syntax or format detail the schema lacks, making baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels this as an "OpenChainGraph compute node (attestation_mandate)" but never states what it actually computes or records about index constituents. It largely restates the name and then spends its budget on execution mechanics, so an agent cannot tell it apart from siblings like record_index_correction, compute_index_weights, or publish_index_head.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 real instruction is a constraint ("Use synthetic or anonymised inputs only"). Nothing says when this node should be selected over the many related index/record tools.
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 CorrectionCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations declaring read-only, idempotent, non-destructive, the description adds useful behavioral context beyond the structured fields: transient input processing with no storage/logging/retention, compute delegation modes (server vs browser), and export of an AP2 artifact with execution_hash. This is solid transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with external URLs, an FV-status hash, and an explanation of a snapshot receipt that does not help an agent select or invoke the tool. The core purpose is buried behind metadata and jargon, making it poorly front-loaded and not concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with four parameters and no output schema, the description explains execution modes and output artifact but never clarifies what the underlying computation does or what policy_parameters should contain ('See the tool's manifest'). An agent cannot confidently decide when this tool is the right choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 elaborates on the compute modes, which duplicates the schema's own description for 'compute', and does not add meaning for 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says it is an 'OpenChainGraph compute node (attestation_mandate)' and 'Deterministic OpenChainGraph compute node', but never explains what 'record index correction' actually computes or what the tool does operationally. It is not a tautology, but the purpose remains vague jargon that does not distinguish it clearly from 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives, nor when not to use it. It mentions a constraint ('Use synthetic or anonymised inputs only'), but that is a safety requirement, not a usage guideline for selecting the tool.
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 LineageARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("record_model_input_lineage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive traits: inputs are processed transiently and not stored/logged/retained, execution is deterministic, and browser mode returns a delegation URL instead of executing. These are behavioral facts an agent cannot get from the annotations. It does not contradict the readOnlyHint since no persistent state is mutated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Core behavioral content is front-loaded, but the text is bloated with low-value metadata: an artifact URL, a long FV-status hash, and a rambling clause about the receipt being 'a snapshot, not a subscription' that does little for tool selection. About a third of the text could be trimmed without loss.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Input semantics (compute modes, chaining, transient processing) are covered well and no output schema exists, so return values would normally need explaining. The description defers this entirely to 'call describe_tool(...)' rather than summarizing the AP2 artifact shape, leaving the response contract underspecified for a chained-provenance tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 reinforces the compute-mode semantics and chaining intent (parent_hashes sets chain.parent_hashes) but adds little beyond the schema, matching the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 execution_hash for chain provenance, which is a concrete verb+resource. It also positions the tool in the graph by naming the upstream artifacts it consumes and the downstream tool (compile_model_risk_lineage_pack) it feeds, aiding sibling differentiation. However, the opening phrasing 'OpenChainGraph compute node (attestation_mandate)' partly restates the title before clarifying function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context for compute-mode selection (auto/server/browser, gpu:true always delegates) and a data-handling constraint ('use synthetic or anonymised inputs only'). It does not, however, state when to use this tool versus alternatives such as build_ai_training_data_lineage_record or compile_model_risk_lineage_pack; usage is implied rather than delimited.
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 receiptARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| revised | Yes | Proposed revised text or markdown document. | |
| original | Yes | Original text or markdown document. | |
| generated_at | No | ISO 8601 timestamp (caller-supplied for determinism). Defaults to the call time. |
TDQS
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.
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.
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.
Does 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.
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.
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 textARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bundle | Yes | The redline receipt bundle to verify. | |
| revised | Yes | Revised text or markdown document. | |
| original | Yes | Original text or markdown document. |
TDQS
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.
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.
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.
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.
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.
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 RegisterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("register_mra_remediation_closure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint/idempotentHint/non-destructive, and the description goes beyond them with real behavioral facts: deterministic execution, compute:auto vs compute:browser routing, gpu:true always delegating to the browser, transient processing with no storage or logging, and an AP2 artifact with execution_hash for provenance. This is genuinely useful context, though it is heavily templated infrastructure prose 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats the title, the middle is generic compute-node boilerplate, and a long FV-status hash URL plus offline-verification aside is embedded before any substantive information. The domain purpose never surfaces, so the bulk 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and four parameters including a nested policy_parameters object, the description should explain the decision function's inputs and what is returned; instead it defers to describe_tool('register_mra_remediation_closure') for the output schema and to the manifest for field names. An agent cannot tell what the tool produces 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 present in the schema and adds nothing about policy_parameters or chaining fields, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Consent-Order / MRA Remediation Closure Register') and then labels itself a 'compute node (attestation_mandate)' without ever stating what the tool actually computes or registers about an MRA closure. Almost all content is infrastructure boilerplate (compute modes, Workers, FV-status URL), so an agent cannot tell its domain function apart from siblings like track_fatca_crs_ro_remediation_closure.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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', a data-handling constraint rather than a when-to-use rule. There is no statement of when this tool should be chosen over alternatives, 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.
register_source_arrival_freshnessSource Arrival & Freshness RegisterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("register_source_arrival_freshness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, non-retained input processing, a synthetic/anonymised-input requirement, server vs browser delegation semantics, and an execution_hash AP2 artifact for provenance. These are meaningful operational disclosures 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with platform boilerplate and a full FV-status hash URL plus an offline-verification aside that do not help an agent invoke the tool. The one useful sentence (data handling) is buried among noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 should explain what the computation is or what the artifact contains, but it defers entirely with 'See the tool's manifest' and an output-schema pointer to describe_tool. Coverage of compute/provenance mechanics does not compensate for the missing description of the core function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 and adds no syntax or field-level meaning the schema lacks; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 labels itself a 'compliance_control' compute node, but never states what the tool actually computes or registers. An agent learns it produces an AP2 artifact but not what decision function it runs, so it cannot reliably distinguish this from the hundreds of other register/compute siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 guidance is given relative to any sibling tool. The only conditional content is compute-mode mechanics, which is invocation detail 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.
replay_supervisory_scenarioSupervisory Scenario Replay (DFAST-lite)ARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("replay_supervisory_scenario").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing the compute routing logic (auto/server/browser, gpu:true always delegates), transient processing with no storage/logging, the AP2 artifact with execution_hash, and the FV-status receipt semantics. This is exactly the kind of context annotations (readOnly/idempotent) cannot carry. It loses a point because the description does not explain what the tool returns when it delegates to a browser URL versus computing server-side.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Severely front-loaded with a federal deadline, an FV-status hash URL, a full URL, and offline-verification caveats before the actual function is described. The FV-status hash and page URL are operational noise that crowd out the value proposition, and the structure reads like a compliance banner rather than a tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter read-only compute node with no output schema, the description covers compute routing, privacy posture, chaining, artifact export, and downstream consumers, which is substantial. It just stops short of describing the shape of the returned artifact or what happens on browser delegation, which would fully complete the picture.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and parent_hashes chaining. The description reinforces the compute-mode default and the chaining purpose, but adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (Replay) and resource (Supervisory Scenario Replay / DFAST-lite) and states it is a capital_assessment compute node, which differentiates it from its siblings. However, the core purpose is buried under a wall of operational metadata (deadline, compute mode, FV-status), so an agent must read past a lot of noise before it understands what the tool actually computes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names downstream consumers (sim-01-lcr-nsfr-liquidity-stress-test, sim-03-basel-rwa-scenario-modeler) implying it feeds a scenario pipeline, and mentions synthetic/anonymised inputs. But it never states when to use this tool versus the many other capital/stress-test siblings (compute_stress_test_scenarios, compute_rwa_scenarios), leaving usage largely inferred.
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 DiffCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("replicate_model_outputs").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds meaningful behavior beyond them: deterministic execution, the auto/server/browser compute-mode semantics with browser delegation, transient non-retention of inputs, and that an AP2 artifact with execution_hash is exported for chain provenance. It stops short of describing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated and repetitive ('OpenChainGraph compute node' and 'Deterministic OpenChainGraph compute node' in consecutive sentences) and front-loads infrastructure boilerplate, a URL, and a raw FV-status hash path before any purpose statement. Link and hash material consume space without helping tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The 4-parameter nested schema is well documented and the description points to describe_tool for the output schema, so return values are covered. However, given the complexity of provenance chaining (parent_hashes/parent_tool_ids) and the absence of any statement of what the diff yields, the description is only minimally sufficient for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's compute-mode paragraph largely duplicates the 'compute' enum description and adds nothing about 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('Model Replication Diff') and then characterizes the tool only as an 'OpenChainGraph compute node (compliance_control).' It never says what a model replication diff actually computes or what the decision function does, so an agent cannot distinguish it from siblings like compare_model_outcome_analysis or assess_model_validation_status 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.
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 alternative tools. The only directive is a data-handling constraint ('Use synthetic or anonymised inputs only'), which constrains inputs but does not help the agent decide to select this tool over its many siblings.
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 ResolverBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("resolve_cbam_default_value").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), yet the description adds real behavioral context: inputs are processed transiently and not stored/logged, compute:'browser' returns a delegation URL rather than a result, gpu:true nodes always delegate, and the call exports an AP2 artifact with execution_hash. That is meaningful beyond the annotations, though the FV-status receipt and provenance boilerplate dilute the signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and compute-mode material are front-loaded, but the block is padded with a redundant restatement and a very long FV-status URL containing a 64-character hash, plus a pointer telling the agent to call describe_tool for the output 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Held back by the absence of an output schema combined with a nested, open-ended policy_parameters object whose field names are explicitly deferred ('See the tool's manifest for field names') and an output-schema description that requires a second tool call. The transient-processing and artifact-export details are useful, but an agent cannot fully predict inputs or outputs from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 sets a baseline of 3. The description restates the compute-mode semantics server/browser behavior but adds nothing about parent_tool_ids ordering or policy_parameters fields, deferring those to a separate manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (resolve CBAM default values), and the description supplies chain position (consumes art-68, feeds art-69), which partly differentiates it from siblings like calculate_cbam_embedded_emissions and model_cbam_certificate_cost. However, it never states in plain terms what a 'default value' resolution returns or how it differs from the other CBAM compute siblings, and one sentence is a near-tautological restatement ('Deterministic OpenChainGraph compute node').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the chain-provenance sentences ('Consumes upstream artifacts from: art-68...', 'Output feeds: art-69...') tell an agent roughly where this sits in a pipeline, and 'Use synthetic or anonymised inputs only' is an explicit constraint. There is no statement of when to choose this over the many CBAM siblings 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.
resolve_provenance_ingredient_treeProvenance Ingredient Tree ResolverBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/non-destructive/idempotent, but the description adds genuinely useful runtime behavior: server-side vs browser execution semantics, browser delegation URLs, transient processing that is 'not stored, logged, or retained', and the exported AP2 artifact with execution_hash. This is substantial context beyond the structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description front-loads a repetitive tautology ('Provenance Ingredient Tree Resolver: OpenChainGraph compute node... Deterministic OpenChainGraph compute node') and ends with a URL plus a long fv-status receipt sentence that does not help an agent select or invoke the tool. The middle content is dense but useful, so the overall structure is only adequate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only compute tool with no output schema and 100% schema coverage, the description covers execution transparency well and clarifies the exported artifact. However, it leaves the nested policy_parameters object ('See the tool's manifest for field names') unexplained, 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.
Does 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 mostly restates the compute-mode behavior that the schema's own 'compute' description defines. It adds no new detail for parent_hashes, parent_tool_ids, or the free-form policy_parameters fields (which the schema itself defers to a manifest).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool and categorize it as an 'OpenChainGraph compute node (compliance_mandate)', but it never actually explains what resolving a 'provenance ingredient tree' does semantically — the first sentence largely restates the title. It does disclose that the tool 'Exports an AP2 artifact with execution_hash for chain provenance', which gives a concrete outcome, but there is no differentiation from any of the many sibling compute/resolve tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing-like content ('Consumes upstream artifacts from: art-124-content-credential-signature-verifier' and the compute-mode rules) describes workflow position and parameter behavior, not when this tool should be selected over another resolver.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("resolve_recall_trace").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavioral facts: inputs are processed transiently and not stored, logged, or retained; synthetic/anonymised inputs are required; an AP2 artifact with execution_hash is exported; and browser delegation occurs for gpu:true nodes. These are meaningful beyond the annotations and consistent with them (no write-persistence claim conflicting with readOnlyHint). It stops short of describing anything about result content 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text repeats itself ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and pads with a raw URL and a 64-hex FV-status hash that add little for an agent deciding whether to call it. The functional purpose is absent from the opening, while infrastructure minutiae are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object compliance tool with no output schema, the description adequately covers compute mode, privacy handling, provenance chaining, and the upstream dependency. It leaves two gaps: the actual semantics of the recall-trace computation and the policy_parameters field names, which it defers to 'the tool's manifest' and describe_tool rather than stating directly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum's own description. The chaining intent behind parent_hashes is corroborated by 'Consumes upstream artifacts from: art-119...', but no format/syntax detail is added. This is the baseline-3 case where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The functional verb+resource ('FSMA 204 Recall Trace Resolver') exists only in the title/name; the body never explains what resolving a recall trace actually does (e.g., tracing a food lot within the 24-hour FDA list window). Instead it describes compute plumbing and provenance, so an agent learns the tool is a ChainGraph compute node but not its decision function. It does name the upstream artifact (art-119-traceability-lot-code-linker), which lightly distinguishes it from siblings, but that is indirect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus alternatives such as link_traceability_lot_code, validate_fsma204_cte, or build_product_lineage. The compute-mode rules ('auto' default, 'browser' forces delegation) are invocation mechanics, not routing guidance. Usage must be inferred entirely from the title.
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 RegistryCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("resolve_rule_version").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Abstracting past the boilerplate, the description discloses real behavior beyond the annotations: compute routing (server vs. browser delegation URL), transient input processing (not stored, logged, or retained), an AP2 artifact with execution_hash, and an offline-verifiable FV-status receipt. It is consistent with readOnly/idempotent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated and poorly front-loaded: it leads with compute-node infrastructure rather than the tool's function, and spends sentences on a URL and an FV-status path that most invocations do not need. Signals that do matter are buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter node with a nested object and no output schema, it covers compute behavior, privacy handling, and artifact export, and correctly defers the output shape to describe_tool. But the core decision output (what a resolved rule version looks like) is never described, leaving a gap the agent must fill elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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/policy_parameters. The description restates the compute modes but adds no field-level meaning, and says nothing about parent linkage or policy_parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line merely restates the title ("Effective-Date / Rule-Version Registry") and the rest is platform boilerplate about being a "Deterministic OpenChainGraph compute node." It never states what resolving a rule version actually does — e.g. that it maps an effective date to the governing rule version — so an agent cannot tell its job apart from dozens of 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is invocation guidance ("compute:'auto' by default", "browser" forces client-side delegation) and a data warning ("Use synthetic or anonymised inputs only"), but nothing about when this tool should be chosen over alternatives. No sibling is named and no scenario selects it.
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-CheckCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("rollforward_y14_capital_worksheet").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral value beyond them: determinism, transient non-retention of inputs, the compute-mode delegation behavior, and the fact that it exports an AP2 artifact carrying an execution_hash for chain provenance. Only the roll-forward/cross-check semantics themselves 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is buried behind infrastructure boilerplate, a documentation URL, a long fv-status hash string, and an offline-receipt explanation that an agent does not need in order to select or invoke the tool. Several sentences do not earn their place in a tool description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 usefully points the agent to describe_tool for output details and covers chaining and compute modes. But for a domain-specific regulatory computation it omits what the roll-forward and cross-check produce or require, leaving the core capability opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 structured data. The description reinforces the compute-mode semantics and chaining but 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the domain (FR Y-14 capital worksheet roll-forward & cross-check) and classifies it as a deterministic OpenChainGraph compute node under regulatory_reporting, so the agent knows the general area. However, it never states what the roll-forward actually computes or what the cross-check verifies, and it does not differentiate itself from the many other FR/reporting compute siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute-mode mechanics (auto/server/browser) but gives no guidance on when to choose this tool, what prerequisites exist, or which sibling to use instead. The only 'use' instruction is to send synthetic or anonymised inputs, which is a safety 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.
roll_up_aml_lookback_dispositionAML Lookback Disposition RollupCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("roll_up_aml_lookback_disposition").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 — transient, non-retained input processing, synthetic-input guidance, and an AP2 artifact export with execution_hash — which is useful, though the compute-mode explanation largely duplicates the schema's own compute description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entry is a long boilerplate wall: title restatement, repeated "deterministic compute node" phrasing, a spec URL, and a raw FV-status hash path add bulk without decision value. Useful content (retention policy, 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.
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 policy_parameters object, the description should explain what the decision function expects and returns; instead it points to an external manifest and describe_tool. The core semantic purpose of an AML disposition rollup is never conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 parameter-level meaning (it even defers policy_parameters 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.
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 a "deterministic OpenChainGraph compute node," which essentially restates the name/title. It never states what an AML lookback disposition rollup actually computes or 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.
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 at all. The only selection-relevant content is the compute-mode plumbing, which is about execution mechanics rather than task fit.
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 RouterARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("route_einvoice_jurisdiction_mandate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context: transient non-retention of inputs, AP2 artifact export with execution_hash, and the upstream/downstream chain wiring. That goes meaningfully beyond the structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the title but then repeats 'OpenChainGraph compute node', and pads the body with an FV-status URL plus a full sha256 receipt, artifact IDs, and a describe_tool pointer. Much of the prose serves provenance/compliance framing rather than tool selection, so it reads as bloated rather than tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic compute node with no output schema, the description covers execution modes, privacy handling, chaining inputs/outputs, and points to describe_tool for the output shape. An agent has enough to invoke it correctly, missing only a clear semantic statement of the decision being routed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 clarifies that policy_parameters are computed server-side for gpu:false nodes with a registered kernel and defers field names to the manifest, but largely restates compute-model behavior already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('E-Invoice Jurisdiction Mandate Router') and identifies itself as an OpenChainGraph compliance_mandate compute node, plus names the upstream artifact it consumes and the downstream artifact it feeds. It is distinguishable from routing siblings, though the core semantic purpose is stated more by label than by a plain-language 'this determines X' clause.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful compute-mode guidance (auto/server/browser) and a constraint ('use synthetic or anonymised inputs only'), but never states when to pick this tool over siblings like route_partner_stablecoin_jurisdiction or the broader einvoice validate/verify family. Usage is implied by the artifact-chain wiring rather than 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 RouterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("route_partner_stablecoin_jurisdiction").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context: transient processing with no storage or logging, server-vs-browser compute resolution with a delegation URL, and export of an AP2 artifact carrying execution_hash. These are non-obvious traits that go beyond the annotations, though some of the FV-status/receipt framing is boilerplate noise.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly half the text is infrastructure boilerplate (kernel registration, FV-status hash path, 'Open at' URL) rather than task-relevant content, and the leading sentence is a pure restatement. The genuinely useful sentences (transient processing, delegation, artifact export, downstream validator) are present but diluted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 100% schema coverage and annotations covering the safety profile, the structured data carries most of the load, and the description does disclose the output artifact and the downstream consumer. However, with no output schema and no explanation of what the routing result contains or when this router is the right one, an agent is left to infer the decision semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute modes (redundant) and gestures at chain provenance via execution_hash; it adds almost nothing on 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title verbatim ('Arc Multi-Currency Corridor Jurisdiction Router') plus a node-type label, but never states what the routing decision actually computes — which corridor/jurisdiction is selected, or against what policy inputs. It is essentially a tautological restatement plus infrastructure metadata, so an agent learns the resource name 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.
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 sibling routers (route_einvoice_jurisdiction_mandate, route_vida_oss_registration). The only usage-like statement is the generic '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.
route_vida_oss_registrationViDA OSS Registration RouterBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely non-obvious behavior: default server-side vs forced-browser execution, gpu:true always delegating, transient non-retention of inputs, and AP2 execution_hash export. This is meaningful added 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded but flabby: it repeats 'OpenChainGraph compute node', includes meta-commentary about the FV-status snapshot being 'a snapshot, not a subscription', and embeds URLs and prose that don't help a caller decide or invoke. Several sentences don't earn their place relative to a calling agent's needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, no-output-schema node, the description is complete enough on plumbing (compute modes, provenance, upstream/downstream links). What's missing is the thing an agent most needs: what registration-routing decision the node makes and what policy_parameters it expects, which is deferred to a manifest the agent cannot see.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 ordering/equality relationship between hash and tool_id arrays. The description only restates the compute default already in the schema and points at 'the manifest' for policy_parameters field names, adding little beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state a clear verb+resource ('ViDA OSS Registration Router') and it's identified as an OpenChainGraph compute node, but the description never actually says what business decision/policy routing the node performs. It spends its text on compute-mode plumbing rather than the registration routing purpose, leaving the actual function opaque.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names an upstream producer (art-162 classifier) and downstream consumer (art-164 diagnostic), implying when it belongs in a chain. But it gives no explicit 'use this when X, not the sibling assess_vida_drr_reporting_obligation' guidance, and required params are all optional with no indication of when to supply them.
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 TesterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_401k_adp_acp_test").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive, with which it is consistent), it discloses genuinely useful behavioral traits: deterministic execution, server-side Cloudflare Workers computation for gpu:false nodes with a registered kernel, compute:'browser' returning a delegation URL instead, gpu:true always delegating, transient non-stored/non-logged processing, and an exported AP2 artifact carrying 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with the tool name as a header, repeats 'OpenChainGraph compute node', then spends most of its length on execution boilerplate, an FV-status URL, a 64-hex hash, and a pointer to describe_tool. The task-relevant content (what to pass) is absent while low-value infrastructure text dominates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Execution-mode, determinism, privacy, and provenance behavior are covered well enough for a compute node, and no output schema exists so return values need not be described. However, for a tool whose sole substantive input is a free-form nested policy_parameters object, the description provides no domain guidance on what that object must contain to run a valid ADP/ACP test.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and parent_tool_ids are already documented. The description restates the compute-mode semantics (auto/server/browser) without adding anything, and defers policy_parameters field meaning to 'the tool's manifest' rather than explaining it, so it neither helps nor hurts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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_mandate family and repeats the title '401(k) ADP/ACP Nondiscrimination Tester', but never says what the tool actually computes (ADP/ACP test over plan/deferral data), what the policy_parameters mean, or how it differs from neighbors like run_section125_ndt or the many other run_*_fit diagnostics. The only real content is infrastructure boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 among the ~200 siblings. The only usage constraint is 'Use synthetic or anonymised inputs only,' which is a data-handling 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.
run_agent_economy_fitAgent Economy Runtime Fit DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_agent_economy_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: compute routing (server-side Cloudflare Workers vs browser delegation for gpu:true), the transient no-storage/no-logging data-handling guarantee, and the AP2 artifact with execution_hash. It stops short of failure modes or latency behavior, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence restates the title, and the text is padded with a full URL and a 64-character FV-status hash filename that add bulk for most agents. The meaningful parts (compute modes, privacy constraint, downstream feeds) are front-loaded and dense, but the identifier noise keeps it from being tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return information ('Exports an AP2 artifact with execution_hash for chain provenance') and points the agent to describe_tool for the full output shape, plus it names the consuming tools. Combined with the privacy and compute-mode disclosures, it is nearly complete for a 4-parameter compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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-schema, including the enum values. The description largely repeats the compute-mode semantics already in the schema and adds no new field-level meaning, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the operation (a deterministic OpenChainGraph compute node that runs an 'Agent Economy Runtime Fit' diagnostic) but never states what the diagnostic actually evaluates or decides. It spends most words on compute plumbing, provenance and downstream consumers rather than the tool's subject matter, leaving the core purpose vague against ~40 sibling run_*_fit tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 lists downstream consumers, which implies where the output fits. However, there is no explicit when-to-use/when-not guidance and no differentiation from the many other run_*_fit_diagnostic siblings, so selection 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.
run_agentic_readiness_diagnosticAgentic Payments Readiness DiagnosticARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive. The description adds substantial context beyond them: deterministic server-side vs browser delegation behavior, transient processing with no storage/logging/retention, and export of an AP2 artifact carrying execution_hash. These are real behavioral traits an agent should know, though the FV-status receipt sentence is opaque about what it actually guarantees.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the purpose and packs dense, relevant detail, but redundantly restates the title, and the closing FV-status/hash paragraph and URL are bulky and hard to parse. Every sentence is not clearly earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent compute node with no output schema, the description covers the compute binding, data handling, and what is exported (AP2 artifact with execution_hash) plus its downstream consumers, which is reasonably complete. It could better state the actual diagnostic verdict/return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 adds the chaining purpose, but adds little syntax or value 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description state a specific verb+resource (an 'Agentic Payments Readiness Diagnostic' compute node in the agent_guardrail_mandate domain), which is enough to tell it apart from accounting/trade siblings. However, it never distinguishes itself from the many other run_*_diagnostic siblings (run_dora_readiness_diagnostic, run_mica_casp_fit, etc.) beyond the domain label, so it is clear but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives implied usage guidance via compute-mode routing and the 'use synthetic or anonymised inputs only' constraint, plus lists downstream tools. But it never says when to choose this diagnostic over a sibling diagnostic or what prerequisites trigger it, 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.
run_ai_act_highrisk_fitEU AI Act High-Risk Fit & Classification DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_ai_act_highrisk_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: transient input processing with no storage, logging or retention, the compute:'auto'/'browser' server-vs-browser delegation behavior, gpu:true always delegating, and an AP2 artifact with execution_hash for provenance. These are genuine behavioral traits an agent needs. It lacks any note on latency/limits or required inputs, so it stops 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and bloated with infrastructure boilerplate: receipt-file hashes, the ainumbers.co URL, an offline-verification aside, and a long downstream 'Output feeds' list. The actual task semantics are buried after compute plumbing rather than front-loaded, so the reader must wade through non-decision-relevant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It helpfully routes to describe_tool('run_ai_act_highrisk_fit') for the output schema and names downstream consumers, and it discloses the transient-execution model. But for a diagnostic tool it never indicates what policy_parameters fields to supply (deferring to 'the tool's manifest'), leaving the actual decision inputs unexplained while the schema is an open additionalProperties object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents compute, parent_hashes, parent_tool_ids and policy_parameters. The description restates the compute-mode semantics and implies chaining via parent hashes but adds no new field-level meaning. Baseline 3 when the schema carries the parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title states a specific resource ('EU AI Act High-Risk Fit & Classification Diagnostic'), so an agent can roughly distinguish it from siblings like run_ai_governance_fit or assess_ai_act_conformity. However, the description body never explains what the diagnostic actually produces or decides — it opens with compute-node plumbing ('OpenChainGraph compute node (agent_guardrail_mandate)') rather than the analysis itself. 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.
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 routing-like content is the 'Output feeds' list of downstream tools, which tells the agent where results go, not when to select this tool. Usage must be inferred from the name.
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 DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_ai_governance_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior beyond them: transient processing with no storage/logging/retention, an AP2 artifact with execution_hash for provenance, and gpu:true always delegating to the browser. This is real added context, though it stops short of describing the returned artifact contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is bloated with the FV-status URL, a 64-character receipt hash, and repeated compute-binding boilerplate that duplicates the schema. Much of this text 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.
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 no output schema, the description covers privacy, provenance, chaining and compute delegation, and points to describe_tool for output. However, it omits what the diagnostic evaluates and what fields policy_parameters requires, leaving a substantive gap for an agent to call it meaningfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 verbatim. It hints at chaining via "Consumes upstream artifacts from" but adds no detail on which policy_parameters fields the decision function expects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the artifact ("AI Governance Readiness Diagnostic", "OpenChainGraph compute node (compliance_mandate)") and identifies the upstream artifact it consumes (art-175-gpai-code-of-practice-conformance), but it never states what governance dimensions the diagnostic actually evaluates. It is not clearly distinguished from the many sibling fit tools (run_ai_act_highrisk_fit, check_gpai_code_conformance, 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.
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 rather than a when-to-use rule. The compute-mode discussion is schema-level plumbing, and there is no guidance on when to choose this tool over the numerous other AI-governance 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.
run_arc_fit_diagnosticArc Fit DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/non-destructive/closed-world, so the safety baseline is covered. The description adds genuinely useful behavior beyond that: transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, deterministic execution, server-vs-browser delegation rules, and the AP2 execution_hash export for provenance. It stops short of describing error or failure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compute behavior and provenance-export facts are reasonably front-loaded, but the opening repeats itself ('OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node.') and the closing FV-status sentence is long, cryptic, and of uncertain value to an agent choosing a tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, zero-required-parameter compute node with no output schema, the description covers execution modes, data handling, and downstream consumers (art-43 through art-47). However, it omits what the diagnostic measures and what policy_parameters it consumes, deferring entirely to an external manifest — a real gap given no output schema is available to reveal the return shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (duplicating the schema) but adds nothing about parent_hashes, parent_tool_ids, or policy_parameters, and explicitly defers field names to 'the tool's manifest', so it does not add meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource (an 'Arc Fit Diagnostic' compute node) and its mechanics, but never says what the diagnostic actually evaluates or scores — 'fit diagnostic' is left as a name restatement. Among many near-identical siblings (run_tempo_fit_diagnostic, run_robinhood_chain_fit_diagnostic, run_dora_readiness_diagnostic), only the 'Arc' label distinguishes it, and the description gives no substantive differentiator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 for selecting this tool over its siblings. The compute-mode discussion ('auto' vs 'server' vs 'browser') is parameter behavior, not tool-selection guidance, and no prerequisites for invoking it are given beyond the synthetic-input warning.
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 SuiteBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_audit_recalc_suite").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: transient processing with no storage or logging, a synthetic-inputs-only constraint, server-vs-browser compute behavior, and export of an AP2 artifact with execution_hash. These are behavioral traits an agent could not 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is redundant, restating the name and 'compute node' twice, and the FV-status path plus URL add bulk. The privacy, compute-mode, and provenance sentences do earn their place, but the text is longer than needed and not optimally front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema, the description covers compute behavior, privacy, and provenance but never explains what the recalculation produces, deferring return shape entirely to describe_tool. It is workable but leaves a gap an agent would need filled before confidently selecting it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 prose largely restates the schema's own enum description, and parent_hashes/parent_tool_ids/policy_parameters get no added meaning in the description, so it does not exceed the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 compliance_control and repeats it in near-identical form ('Deterministic OpenChainGraph compute node'), but never states what the audit recalculation actually computes. It does not distinguish this node from the many sibling recompute tools (e.g. compute_gl_tieout_recompute, rdarr_aggregation_recompute), leaving purpose at a vague level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 numerous sibling recompute tools. The only conditional guidance concerns compute mode selection ('auto'/'browser'), which is invocation mechanics rather than task routing.
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 GateARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_call_report_edit_checks").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: transient input processing with no storage or logging, compute-vs-browser delegation semantics, and an AP2 artifact export carrying execution_hash for chain provenance. That is real disclosure beyond the structured hints, though it omits any failure or rejection semantics for a gate tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and compute semantics are front-loaded, but the text carries boilerplate (the repeated 'Deterministic OpenChainGraph compute node' phrasing, a 64-character FV-status hash, a raw URL) that dilutes an otherwise tight definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema, the description covers compute mode, chaining inputs, artifact output, and privacy handling, and it routes to describe_tool for the return shape. The policy_parameters fields remain unexplained, which is the one visible gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the schema lacks: it identifies the specific upstream artifacts (art-432, art-433) whose execution_hashes feed parent_hashes/parent_tool_ids. The opaque policy_parameters object is still only deferred to the manifest, keeping it out of 5 territory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (an edit-check gate over published Call Report data) and tags it as a regulatory_reporting OpenChainGraph compute node, so the agent knows what domain it operates in. It does not differentiate from the near-identical sibling run_regrpt_edit_checks, so the 5 is not earned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives some operational guidance — compute mode selection and the constraint 'use synthetic or anonymised inputs only' — and names the upstream artifacts it chains from. But it never says when to prefer this gate over run_regrpt_edit_checks or the schedule-mapping siblings, leaving the routing decision to inference.
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 DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_carbon_compliance_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent/destructive annotations, the description discloses genuinely useful behavior: deterministic compute, the auto/server/browser compute-mode contract, transient processing with no storage/logging/retention, and an AP2 export with execution_hash plus an offline-verifiable FV-status receipt. That is substantive context about side effects and provenance 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with the title, then buries the reader in node-runtime boilerplate (Cloudflare Workers kernel registration, delegation URLs), a full 64-character FV-status hash, a landing-page URL, and an output-schema pointer. Little of this earns its place for tool selection, and the sentence that should state the tool's purpose is never written.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 offloads it to describe_tool, yet it also never explains what the diagnostic evaluates or what fields policy_parameters (a nested, free-form object) expects. For a diagnostics node with an unconstrained nested input, this leaves the caller without enough to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 otherwise defers policy_parameters fields to 'the tool's manifest'. Baseline 3 is warranted 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names the domain ('Carbon & Climate Compliance Fit Diagnostic') and the description lists downstream tools (CBAM embedded emissions, taxonomy alignment, EUGB factsheet, climate scenario) that hint at what is evaluated, but the body never states a verb+resource such as 'evaluate whether a portfolio/product meets CBAM and EU taxonomy climate criteria'. An agent must infer the actual purpose from the name and the recipient list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 among the many sibling run_*_fit/readiness diagnostics (run_ai_act_highrisk_fit, run_mica_casp_fit, run_dora_readiness_diagnostic, run_eudr_readiness_fit). The 'Output feeds' list names downstream consumers, which is not the same as telling the caller when this tool is the right entry point.
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 callARead-onlyIdempotentInspect
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. Runs with anything to explain carry decision_trail: per-step reason codes (gate rule id, escalation rule id, input_required cause), hash-excluded adjacent metadata recomputable from the hash-bound decisions[]. 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. Server-mode responses also echo a stable dedupe object — dedupe.input_hash (JCS-SHA-256 over the effective run inputs: chain, per-step inputs after the caller/fixture fallback, and mandate_hash when a mandate governs) beside dedupe.composite_execution_hash — so a client can recognize and skip an exact re-run (idempotentHint) without recomputing anything. See docs/IDEMPOTENCY.md.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain name, e.g. "agent-commerce-conformance". List names with find_chain or build_workflow_links. | |
| inputs | No | Map of step tool_id -> policy_parameters overrides. Omitted steps run with {} (kernels needing required fields are reported, not failed silently). | |
| compute | No | "auto"/"server" (default) runs kernel-backed steps server-side; "browser" returns a zero-egress delegation bundle to run client-side. | |
| mandate | No | Optional §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_transport | No | How 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description massively exceeds the annotations by explaining zero-egress browser delegation, deterministic execution, zero PII/logging, per-step input_required reporting, decision_trail reason codes, OTel span output, ledger_url, and the dedupe object supporting idempotency. This is consistent with readOnlyHint and idempotentHint, with no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long, but each sentence contributes a distinct behavioral fact: compute modes, input omission handling, browser-only steps, determinism, verification, decision_trail, OTel spans, ledger link, and dedupe. It is front-loaded with the core execution statement and avoids repetition, though it is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explain return behavior, and it does: composite artifact execution_hash, decision_trail, OTel span resource link, ledger_url, and dedupe.input_hash/composite_execution_hash. It also covers error behavior, browser delegation, and verification, leaving no essential gap for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all five parameters with 100% coverage, so the description carries less parameter burden. It usefully reinforces the inputs-as-map shape and browser vs server compute semantics, but most additional text is about output behavior rather than parameter-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Executes every step of a named chain' and identifies the output as 'ONE composite artifact whose execution_hash anchors all step outputs.' It also differentiates itself from discovery tools like find_chain and build_workflow_links, so an agent can understand what run_chain is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use find_chain/build_workflow_links to discover chains, route compute to server/auto or browser based on egress needs, and verify results with verify_execution_hash. It does not explicitly state when to prefer run_chain over sibling execution or recording tools, but the main usage conditions are transparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_chain_batchRun or estimate several ChainGraph chains in one callARead-onlyIdempotentInspect
Batch over named chains in ONE round-trip with a PER-ROW terminal status — one row's failure never fails another, and every row's result rides the single response. mode:"run" (default) executes each row through the same engine as run_chain (composite artifact + execution_hash per row, deterministic); mode:"estimate" validates every row (chain exists, step counts, compute feasibility, inputs coverage, OCG §21.4 gate rule previews) WITHOUT executing anything. Capped at 8 rows and 11 total server-kernel steps per batch — caps MEASURED live on the deployed free-plan endpoint, where N kernel builds in one invocation share one CPU budget (an 11-step chain: green at 416 ms). Beyond the cap, use sequential run_chain calls — each call gets its own CPU budget (the blessed fan-out pattern on this tier; docs/client-fan-out-patterns.md). Retry = re-run the WHOLE batch: safe, because determinism reproduces byte-identical execution hashes. Mandates and input_required escalation are not accepted on batch rows; escalated rows carry the non-blocking resolve_handle record. Zero PII, zero payload logging.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | "run" (default) executes every row server-side through the same engine as run_chain; "estimate" validates all rows and previews gates without executing anything. | |
| rows | Yes | 1-8 rows, one chain per row. The cap keeps the synchronous response bounded and inside the free-plan CPU budget measured live; for larger fan-out use sequential run_chain calls (docs/client-fan-out-patterns.md). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds substantial behavioral context beyond those: one row's failure never fails another, estimate mode performs no execution, retry is safe due to deterministic hashes, and mandates/input_required escalation are not accepted. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense yet every sentence adds a distinct fact: batch semantics, mode differences, caps, alternative pattern, retry safety, row constraints, and logging guarantees. The most important differentiators (batch, per-row status, caps) are front-loaded before the deeper details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the absence of an output schema, and rich siblings, this description is remarkably complete. It covers when to use, when not to use, execution guarantees, failure handling, caps, determinism, and data-handling policy. Nothing essential for correct selection or invocation appears to be missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3, but the description enriches parameters by explaining row-level isolation, the 11-step CPU budget, per-row execution_hash determinism, and the non-blocking resolve_handle behavior. It does not redefine the two parameters but adds operational semantics that are genuinely useful for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a precise verb plus resource: "Batch over named chains in ONE round-trip with a PER-ROW terminal status." It clearly distinguishes itself from run_chain by emphasizing batch execution, per-row status isolation, and the run/estimate mode split. This is much more than a 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly gives the boundary condition: "Capped at 8 rows and 11 total server-kernel steps per batch... Beyond the cap, use sequential run_chain calls — each call gets its own CPU budget." It also explains when to use mode:"estimate" vs mode:"run", so an agent can decide correctly without inference.
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 DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_digital_trade_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and closed-world, and the description stays consistent with that while adding real value: transient processing with no storage or logging, the auto/server/browser compute-binding behavior, the gpu:true always-delegates rule, and the AP2 artifact + execution_hash export for provenance. It stops short of error modes or delegation-URL semantics, but it substantially extends 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opener duplicates itself ('OpenChainGraph compute node (agent_guardrail_mandate). Deterministic OpenChainGraph compute node'), the compute-mode paragraph re-explains what the schema enum already says, and the FV-status URL paragraph is heavy boilerplate. The genuinely useful content is buried and 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute tool with a free-form nested policy_parameters object and no output schema, the description should tell the agent what this diagnostic evaluates and what to put in policy_parameters; instead it points at an external manifest. Chain wiring is covered, but the core input semantics an agent needs to invoke it correctly are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 nearly identical wording, and for the important nested policy_parameters object it only defers with 'See the tool's manifest for field names' — adding no real meaning over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The definition identifies a specific resource — a 'Digital Trade Corridor Fit Diagnostic' open chain compute node — and names the concrete downstream consumers (art-53/54/55 validators, Canton allowlist, etc.), so an agent can place it in a pipeline. However, it never states what 'fit' is actually being computed or what fields the diagnostic evaluates, and it does not differentiate itself from the many sibling run_*_fit diagnostics 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the 'Output feeds:' list signals this is an upstream chaining step, and the compute-mode/parent_hashes text implies how to wire it, but there is no explicit 'use this when / not when' and no named alternative. 'Use synthetic or anonymised inputs only' is an input 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.
run_dora_readiness_diagnosticDORA Readiness DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_dora_readiness_diagnostic").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuinely useful context beyond that — deterministic computation, transient non-retention of inputs, server-vs-browser delegation semantics, and AP2 artifact export with execution_hash — but it also pushes users toward synthetic inputs only, which hints at a data-sensitivity constraint it never fully explains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is bloated with runtime internals, a marketing URL, and a raw FV-status receipt path/hash that no agent needs in order to select or invoke the tool. Useful sentences about determinism and delegation are buried inside infrastructure that crowds the actual purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters object, the description should say more about what the diagnostic produces, yet it defers entirely to 'call describe_tool(...)' for the output shape. The compute and privacy behavior is well covered, but the substantive decision inputs and outputs remain opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description largely restates the compute-mode semantics that the schema's enum description contains. It adds only the note that policy_parameters field names live in the tool manifest, which is a pointer rather than added meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and headline identify a DORA readiness diagnostic, and the description names downstream consumers (art-09-dora-incident-classifier, etc.), which helps differentiate it from sibling diagnostics like run_agentic_readiness_diagnostic. However, the body is dominated by compute-runtime plumbing rather than stating what the diagnostic actually evaluates or returns, so the purpose is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to siblings such as run_agentic_readiness_diagnostic or diagnose_canton_readiness. The description explains compute modes but never says when an agent should pick this tool over the many other readiness/fit diagnostics in the list.
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 DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent and non-destructive behavior, yet the description adds genuinely useful traits: inputs are processed transiently and not stored/logged/retained, only synthetic or anonymised inputs should be used, and the run exports an AP2 artifact with an execution_hash. The upstream-artifact dependency (art-157) is also disclosed. It stops short of describing what the diagnostic actually evaluates 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, which is good, but the description is padded with low-value content: a repeated compute-mode explanation already in the schema and a long FV-status receipt hash whose relevance to invocation is unclear. The first sentence and the data-handling sentence earn their place; the provenance boilerplate does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations gap, the description adequately covers execution behavior for a read-only diagnostic. However, it never explains what the readiness check inspects or what the user must supply in policy_parameters (deferred to an external manifest), leaving the core input semantics under-specified for a tool that needs domain inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restatement of compute modes duplicates the enum description rather than adding meaning, and policy_parameters fields are deferred to an external '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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pair ('EMIR Reporting Readiness Diagnostic') and identifies the tool class ('OpenChainGraph compute node'), plus what it produces (AP2 artifact with execution_hash). It does not explicitly differentiate itself from the many sibling EMIR tools (validate_emir_trade_report, check_emir_uti_completeness, reconcile_emir_pairing), 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.
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' content is the compute-mode mechanics, which the schema already documents. An agent gets no help deciding between this diagnostic and the EMIR validators/checkers.
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 DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_eudr_readiness_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond them: transient input handling with no retention, server-vs-browser execution delegation rules, and AP2 artifact export with execution_hash provenance. That is meaningful disclosure the agent could not get 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by ChainGraph infrastructure boilerplate, a raw URL, and a 64-character FV-status hash that consume space without helping an agent decide or call the tool. The actual diagnostic purpose is never front-loaded or expanded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no description of what the diagnostic returns or which policy_parameters fields it expects, the definition is not complete enough for correct invocation. Pointing at describe_tool for the output schema is a stopgap, not completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 largely repeats the compute-mode semantics rather than adding new meaning. It provides no help on policy_parameters field names, deferring to an external manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (EUDR readiness diagnostic) and identifies it as a compliance_mandate compute node, but never states what the diagnostic actually evaluates — no verb describing the assessment itself. The only real substance is the upstream artifact reference (art-169 traceability linker), which gives some scope but not 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no when-not-to-use, and no routing among the many close siblings (score_eudr_country_risk, validate_eudr_due_diligence_statement, classify_eudr_commodity_scope, run_carbon_compliance_fit). The compute-mode mechanics are infrastructure detail, not invocation guidance.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_illustration_selfsupport_test").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description usefully adds that computation is deterministic, runs transiently with no storage/logging/retention, and exports an AP2 artifact with execution_hash for chain provenance. It also discloses the FV-status receipt semantics (snapshot, offline-verifiable). The compute-mode behavior is repeated from the schema, so it is valuable but partly duplicative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded but the body is padded with selection-irrelevant material: the HTML URL, the full FV-status hash path, and a sentence explaining that the receipt 'verifies offline regardless of whether that file is ever fetched'. Multiple sentences do not help an agent choose or invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 point to describe_tool for the return shape and mentions the downstream consumer and artifact export, which covers chaining adequately. However, for a compliance computation node whose real input lives in an opaque policy_parameters object, it never explains what inputs the test consumes, leaving the domain contract underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 duplicates the schema's own 'compute' description verbatim and adds nothing about parent_hashes, parent_tool_ids, or policy_parameters field semantics ('See the tool's manifest' points outside the definition).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line restates the tool name/title ('Life Illustration Self-Support Test (NAIC Model 582)') and tags it 'OpenChainGraph compute node (compliance_mandate)', but never explains what the self-support test actually computes or evaluates. The downstream link ('Output feeds: art-254-compute-rbc-action-level') gives some sibling context, yet the body text is generic infrastructure boilerplate rather than domain purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs alternatives guidance at all; nothing tells the agent when this test is applicable versus the many other 'run_*_fit_diagnostic' and 'compute_*' compliance tools. The only actionable constraint is 'Use synthetic or anonymised inputs only', which is a data-handling 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.
run_insurance_reporting_fitInsurance Reporting Readiness DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_insurance_reporting_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine behavioral context beyond them: inputs are processed transiently and not stored/logged/retained, synthetic inputs are required, and an AP2 artifact with execution_hash is exported for chain provenance. That is substantive disclosure about data handling and side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is long and front-loads infrastructure boilerplate (Workers, kernels, delegation URL), an HTML link, and a raw FV-status hash path. Much of this is generic across the tool family and crowds out the one thing an agent needs — what the diagnostic does. It is verbose rather than economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance diagnostic with no output schema, the description should explain what 'readiness' means and what the assessment produces. Instead it defers the output schema to describe_tool and omits the domain substance entirely, leaving a real gap for an agent deciding whether to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 sentences largely restate the schema enum and add no new syntax or semantics, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first clause establish that this is an 'Insurance Reporting Readiness Diagnostic' compute node, and it names the upstream IFRS17 reconciliation artifact it consumes. However, the description never says what the diagnostic actually assesses or returns — it is dominated by compute-infrastructure boilerplate that could belong to any node in this family. An agent cannot tell what makes this tool's insurance-reporting judgement distinct from sibling run_*_fit diagnostics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus the many sibling readiness/fit tools, and no prerequisites are given beyond a passing mention that it consumes art-181-sii-ifrs17-reconciliation-bridger. The compute-mode text describes execution mechanics, not usage selection.
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 DiagnosticARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_irrbb_disclosure_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 execution, server-side vs browser delegation semantics, transient processing with no storage or logging, a synthetic-inputs-only constraint, and an AP2 artifact export carrying execution_hash for chain provenance. These are real disclosures 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but a large share of the text is template boilerplate repeated across the OCG compute-node family (compute binding, transient processing, fv-status receipt), plus a raw URL and a long fv-status JSON path that consume space without helping tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 100% schema coverage and no output schema, the description covers the relevant gaps: it explains compute/execution semantics, privacy handling, provenance export, upstream chaining, and explicitly points to describe_tool for the output schema. Adequate for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 policy_parameters. The description largely restates the compute-mode behavior already present in the schema and adds no new field-level semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (IRRBB Disclosure Readiness Diagnostic) and its class (OpenChainGraph compute node, compliance_mandate), and the upstream artifact reference (art-187-irrbb-csrbb-scope-checker) positions it relative to the sibling IRRBB tools. However, the bulk of the text describes compute plumbing rather than what the diagnostic actually evaluates, so the specific decision it renders is only partially specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention that it consumes upstream artifacts from art-187-irrbb-csrbb-scope-checker implies an ordering constraint, and the compute-mode guidance hints at execution context. But there is no explicit statement of when to use this versus sibling IRRBB tools (check_irrbb_csrbb_scope, evaluate_irrbb_sot_eve, map_irrbb_standardised_approach), and no when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_kernel_vmKernel VMARead-onlyIdempotentInspect
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). Output schema: call describe_tool("run_kernel_vm").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations declaring readOnly, idempotent, and non-destructive, the description adds meaningful behavioral context: sandboxed WebAssembly execution, determinism, in-browser operation, zero network, zero PII, and a demo-only kernel limitation. It also proactively points to describe_tool for the output schema, which is valuable given no output schema is attached.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three information-dense sentences with no filler. The core action is front-loaded, followed by the key limitation and then the widget/bridge behavior; every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one optional open-map parameter, rich annotations, and no output schema, the description covers the essential call context: what runs, where it runs, constraints, the demo limitation, the alternative for full kernels, and how to obtain the output schema. Nothing critical for an agent to invoke or avoid misusing this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'inputs' parameter is already documented as a map of tool input element IDs applied via AIN Bridge prefill. The tool description mostly restates that same AIN Bridge mechanism, adding no substantial meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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: 'Run a ChainGraph decision kernel's compute(policy_parameters) inside a sandboxed, deterministic, in-browser QuickJS-ng WebAssembly VM' and states the return value, output_payload. It also differentiates itself by noting it is demo-kernel-only and renders the AINumbers widget client-side, distinguishing it from worker-side compute and sibling run_chain-type tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly scopes usage with 'Demo kernel set only -- for the full catalog, use the worker's compute kernels directly,' which acts as a when-not-to-use instruction and names an alternative. It also conveys relevant context (client-side, zero PII, zero network) for choosing this tool, though it does not fully enumerate conditions for selecting it over similar run_* siblings.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_liquidity_stress_test").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored or logged, compute:'browser' returns a delegation URL rather than a result, gpu:true always delegates, and the output is an AP2 artifact with execution_hash for provenance. That goes meaningfully 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long and heavily padded with platform boilerplate: restated title, the FV-status snapshot caveat, an HTML URL, and a describe_tool redirect. The genuinely useful facts (transient processing, browser delegation, AP2 provenance) are buried among infrastructure prose, so the definition is not front-loaded on what the calling agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-object, no-required-params tool with no output schema, the description covers provenance and data handling but leaves the decision-function inputs opaque, pointing to an external manifest for policy_parameters field names. It defers output shape to describe_tool, which is acceptable, but the substantive simulation semantics remain underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 echoes the compute-mode semantics already present in the schema (auto/server/browser) and adds no syntax or format detail beyond it, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Liquidity Stress Test Simulator (LCR/NSFR)') and identifies the tool as an OpenChainGraph compute node for liquidity_mandate, which conveys the resource. However, it never states the actual operation in agent terms (run a scenario? evaluate a portfolio?) and does not distinguish itself from close siblings like compute_lcr_nsfr_leverage, compute_stress_test_scenarios, or run_rate_shock_ladder.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-ish guidance is 'Use synthetic or anonymised inputs only,' which is a data constraint, not when-to-use guidance. There is no statement of when this tool should be chosen over the many neighboring LCR/stress/leverage compute 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.
run_mcp_deployability_diagnosticMCP Server Deployability DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_mcp_deployability_diagnostic").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 execution semantics for compute modes, that inputs are processed transiently and not stored or logged, and that an AP2 artifact with execution_hash is exported for chain provenance. This is genuine added context, though the provenance/FV-status metadata is tangential.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening identifies the tool, but the paragraph then crams in compute mode mechanics, retention policy, artifact export, a downstream feed id, a documentation URL, and an FV-status receipt hash. Several of these sentences are extraneous to invoking the tool, so the density is not matched by front-loading discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, four parameters, and a nested object parameter, the description should explain the return shape; it partially does (AP2 artifact with execution_hash) but delegates the rest to describe_tool. It covers compute-mode behavior but leaves the diagnostic result itself underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'auto' default that the schema already fully documents and adds no field-level syntax beyond it, so it does not exceed the schema's contribution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('MCP Server Deployability Diagnostic' compute node) and states it is a deterministic OpenChainGraph compute node, so the agent knows it runs a diagnostic. However, it does not distinguish itself from the many adjacent 'run_*_readiness_diagnostic' / 'score_mcp_server_readiness' / 'lint_mcp_server_conformance' siblings, so an agent cannot tell from the text alone which diagnostic applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a data constraint ('Use synthetic or anonymised inputs only') but no guidance on when to invoke this tool versus alternatives such as score_mcp_server_readiness or lint_mcp_server_conformance. The agent is left to infer the use case 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.
run_mica_casp_fitMiCA CASP Fit DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_mica_casp_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 non-annotation behavior: transient processing with no storage or logging, a synthetic-inputs-only constraint, deterministic execution, browser delegation semantics, and export of an AP2 artifact carrying execution_hash for provenance. The compute-mode paragraph largely repeats the schema, slightly diluting 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text repeats itself ('OpenChainGraph compute node' then 'Deterministic OpenChainGraph compute node'), re-explains the compute modes already fully specified in the schema, and embeds two long URLs plus an FV-status hash that consume space without helping selection or invocation. Signal is present but buried in plumbing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute-node tool with 0 required params, nested policy_parameters, no output schema, and a pointer to describe_tool for return shape, the description covers compute routing, data handling, and chain provenance adequately. The main gap is that policy_parameters field semantics remain opaque and the actual diagnostic output is never characterized.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 rather than extending it. It does not clarify policy_parameters field naming beyond deferring to an external manifest, so nothing is added over 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title phrase 'MiCA CASP Fit Diagnostic' names a resource, but the sentence that follows ('OpenChainGraph compute node (agent_guardrail_mandate)') is infrastructural jargon rather than a statement of what the diagnostic evaluates. It never distinguishes itself from close siblings such as assess_mica_casp_readiness or run_mica_casp_fit's own domain peers, so an agent must guess at the deliverable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists downstream consumers ('Output feeds: art-99... cry-05...') but gives no condition for when this tool should be chosen over assess_mica_casp_readiness or other readiness diagnostics, and no when-not guidance or prerequisites.
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 BatteryBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_model_test_battery").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server-side computation on Cloudflare Workers for gpu:false nodes, deterministic behaviour, transient non-stored/logged inputs, synthetic-input-only guidance, and export of an AP2 artifact with execution_hash. The offline-verifiable FV receipt is also useful context, though some of it is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the name and node type, but subsequent sentences are dense and mix concerns (compute mechanics, data handling, artifact export, a full URI, and a raw FV-status hash path). The URL and receipt path consume space without clearly earning it for a calling agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 export artifact and the describe_tool lookup, and it explains compute routing. However, the actual decision function and the required shape of policy_parameters remain unspecified, so an agent still lacks what it needs to invoke the tool meaningfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 ordering, and policy_parameters are already documented in the schema. The description's explanation of compute:'auto'/'browser' restates what the schema says rather than adding format, defaults, or interaction semantics beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('Model Test Battery') and categorises it as an OpenChainGraph compute node under compliance_control, but never says what the battery actually computes or evaluates. It does not differentiate itself from the hundreds of sibling compute/assess tools (e.g. assess_model_validation_status, replicate_model_outputs), leaving purpose only partially resolved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit statement of when to use this tool versus the alternatives, nor any when-not guidance or prerequisites. The only routing information is an infrastructure detail (compute:auto vs compute:browser), which is about mechanism, not selection.
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 DiagnosticARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_pqc_timeline_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavior beyond the annotations: inputs are processed transiently and not stored/logged, compute routing semantics (server vs. browser delegation, gpu:true always delegates), and an AP2 artifact with execution_hash is exported for provenance. The annotations already cover the read-only/idempotent/non-destructive safety profile, so this is solid supplementary context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Reasonably front-loaded with the title and compute-node role, but bloated by a raw FV-status hash, a URL, and a six-item downstream artifact list that carry limited selection value. Several sentences restate infrastructure detail already implied by the compute parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 correctly defers to describe_tool for return shape, which is acceptable. But for a nested-object tool whose policy_parameters contents are the actual decision inputs, deferring field names entirely to an external manifest leaves a real gap in what an agent needs to invoke it meaningfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 some chaining context ('sets chain.parent_hashes in the export') and compute-mode behavior, but the actual policy_parameters field names are deferred to 'the tool's manifest,' leaving the core decision inputs unspecified here. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource and intent (PQC timeline & migration fit diagnostic) and identifies itself as an OpenChainGraph compute node, which distinguishes it from the many other run_*_fit_diagnostic siblings by domain. However, it never says what the diagnostic actually evaluates or produces beyond the artifact label, so an agent cannot fully predict its role without the downstream tool list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use vs. alternatives statement. Usage is only implied by the 'Output feeds:' list of six downstream artifacts, which suggests this is an upstream chaining step, and by the parent_hashes chaining parameters. There is no guidance on when NOT to use it versus compute_pqc_deadline_ladder or plan_tls_pki_migration.
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 ReplayCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_rate_shock_ladder").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe-read profile (readOnly, idempotent, non-destructive, closed-world), and the description adds real value on top: inputs are processed transiently and not stored or logged, execution is deterministic, and the result is an AP2 artifact carrying an execution_hash for chain provenance. The compute-mode delegation behavior (server vs browser, gpu:true always delegating) is also disclosed, which is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by platform boilerplate, a raw CDN URL, a long FV-status hash path, and a describe_tool pointer, while the actual purpose of the tool is compressed into the title. It is front-loaded with infrastructure detail rather than the task, so several sentences do not earn their place for a selecting agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex deterministic compute node with no output schema, the description does cover execution model, data handling, chaining inputs, and points to describe_tool for the output shape. What it omits is the substantive part: what the rate shock ladder computes and what its result means, leaving a gap that the schema and annotations cannot fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 but adds no syntax or format detail for the parameters beyond what the schema provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title ("Rate Shock Ladder Replay") and then labels it an "OpenChainGraph compute node (analytics_mandate)" without ever stating what the tool actually computes or replays. An agent learns it is a deterministic analytics compute node but not what a rate shock ladder is or what the output represents, so it cannot confidently distinguish this from siblings like calculate_irrbb_eve_shocks or evaluate_irrbb_sot_nii.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only genuine usage instruction 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 prefer this tool over the many sibling shock/stress/replay tools, nor what preconditions or upstream inputs are required.
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 RunnerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_regrpt_edit_checks").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false. The description adds genuinely useful behavioral context beyond those: compute:'auto' vs 'browser' vs server routing, gpu:true always delegating, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for provenance. That is substantive disclosure absent 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense wall of infrastructure boilerplate (compute binding, FV-status JSON path, artifact URLs) with the actual purpose crammed into the opening clause. Key routing information is not front-loaded, and several sentences serve platform provenance rather than helping an agent decide or invoke correctly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return-value burden; it instead delegates to describe_tool("run_regrpt_edit_checks"). It covers compute semantics and provenance adequately but never explains what the edit checks evaluate, what inputs policy_parameters expects, or what a result looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 explanation largely duplicates the schema enum description, and it defers policy_parameters field names to 'the tool's 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool is a 'Published Regulatory Report Edit-Check Runner' on an OpenChainGraph compute node, which gives a verb+resource. However, the specific purpose is buried under infrastructure boilerplate (compute modes, FV-status receipts), and nothing distinguishes it from the closely-named sibling run_call_report_edit_checks or the many other run_*_fit/edit-check tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 is provided. There is no mention of the sibling run_call_report_edit_checks, no prerequisites, and no indication of which regulatory report regimes the edit checks cover.
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 DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/non-destructive, the description adds real behavioral context: transient processing with no storage or logging, deterministic server-side execution, gpu:true browser delegation, and export of an AP2 artifact carrying execution_hash. It stops short of rate limits, auth requirements, or failure behavior, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool name and role, but a large block re-explains compute modes already fully specified in the schema, and the closing FV-status receipt paragraph is verbose boilerplate. Several sentences do not earn their place against structured fields that already carry the same content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter tool with 100% schema coverage and no output schema, the description supplies data-handling guarantees, provenance artifact details, compute-mode behavior, and the downstream artifact chain, which is enough to call it correctly. The main gap is that it never explains what the diagnostic computes or what the policy_parameters should contain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 is essentially a verbatim restatement of the schema, and it defers policy_parameters field names to 'the manifest' exactly as the schema does, adding no new semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first line establish it as a 'Robinhood Chain Fit Diagnostic' compute node with a specific verb (run) and resource, but the description never says what 'chain fit' actually evaluates or what the diagnostic determines. It describes the execution plumbing rather than the decision the tool makes, and offers no contrast with near siblings like map_robinhood_chain_regime or run_arc_fit_diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is partial guidance on input hygiene ('use synthetic or anonymised inputs only') and on compute-mode selection, but nothing on when to invoke this tool versus the many other fit-diagnostic and Robinhood-chain siblings. The list of downstream consumers hints at position in a chain but not at selection criteria.
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 DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_sanctions_screening_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe-read profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new behavior: server vs browser delegation semantics for compute modes, transient non-retained input handling, and an exported AP2 artifact with execution_hash for provenance. It does not contradict the annotations. Minor gap: no mention of latency/rate limits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded, which is good, but a large fraction of the text is infrastructure boilerplate that duplicates the schema (compute mode rules), an opaque FV-status file path and hash, and a bare URL. The 'Output feeds' chain list carries some value, but the FV receipt hash is pure 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex nested-input compute node with no output schema, and the most important parameter (policy_parameters) is left entirely opaque — 'See the tool's manifest for field names' points outside the tool definition. The description explains the artifact export but never describes what the diagnostic computes, so an agent cannot construct a valid call without external lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 default, adding no syntax or format detail beyond the schema. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first sentence identify it as a sanctions/export-control screening 'fit diagnostic' compute node, so the general domain is clear. However, the description never states what the diagnostic actually evaluates or returns (readiness score? gap analysis?), and it does not distinguish itself from siblings like score_sanctions_screening_quality or build_sanctions_screening_evidence_pack. Purpose is only vaguely conveyed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 guidance on when to invoke this vs the many sibling screening/quality tools, and no prerequisites or expected upstream chain. The 'Output feeds' list implies downstream routing but gives no 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.
run_section125_ndt§125 Cafeteria Plan Nondiscrimination TesterCRead-onlyIdempotentInspect
§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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_section125_ndt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe/idempotent read profile, but the description adds genuinely useful behavior: compute mode routing (auto/server/browser, gpu:true always browsers), transient non-retained input processing, and emission of an AP2 artifact with execution_hash for chain provenance. That is real disclosure beyond the structured fields, though it never explains what the computation does 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
'Deterministic OpenChainGraph compute node' is effectively stated twice, and a large fraction of the text is a processing-policy paragraph plus a full 64-hex FV-status URL and hash. The actual subject matter (§125 NDT) gets one clause. Front-loaded but poorly spent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, unconstrained policy_parameters object that is the real decision input, the description should carry more weight. Instead it points to describe_tool for the output schema and to 'the tool's manifest' for field names, leaving the agent without the information needed to build a valid policy_parameters payload for this specific test.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already. The description restates the compute-mode semantics (which the schema also covers) but adds nothing about policy_parameters contents, deferring instead 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first clause identify the resource ('§125 Cafeteria Plan Nondiscrimination Tester') and categorize it as a 'compliance_mandate' compute node, so an agent can infer it runs a Section 125 nondiscrimination test. However, the description never states what the test actually evaluates or returns, and the opening is immediately buried under infrastructure boilerplate, so it is distinguishable from siblings like run_401k_adp_acp_test only by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 choose this tool versus the many other run_*_fit / run_*_test siblings, no prerequisites, and no exclusions. An agent must guess the triggering conditions.
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 DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_slate_reporting_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotent/destructive already declared, the description still adds genuine behavioral value: transient processing with no storage/logging/retention, the browser-delegation outcome for compute:'browser', GPU delegation, the AP2 artifact with execution_hash for provenance, and the upstream dependency on art-544-slate-report-validator. These are non-obvious runtime traits not present in the annotations. Minor gap: no statement about failure modes or latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is an undifferentiated wall of meta-boilerplate: repeated 'Deterministic OpenChainGraph compute node' phrasing, a raw URL, and a long FV-status path/hash that an agent cannot act on. The actually useful clauses (compute delegation, transient processing, artifact export) are buried rather than front-loaded after the tool's core purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description declines to describe return values and instead points to describe_tool, which is a reasonable handoff; it does cover privacy, compute routing, provenance, and upstream dependency. However, for a 4-parameter node with a nested policy_parameters object it gives no example fields of the decision input, and never states what a 'readiness fit' verdict looks like. Adequate but clearly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute semantics and nothing about how parent_hashes/parent_tool_ids must correspond, so it adds essentially no meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and lead phrase identify it as a 'SLATE Reporting Readiness Diagnostic', but the body spends most of its words on OpenChainGraph compute mechanics (compute modes, transient processing, FV-status hash) rather than stating what the diagnostic actually evaluates. An agent can infer the resource but not the specific verb or output meaning, and there is no differentiation from the many sibling '*_fit'/'readiness' tools. It is identifiable but vague as 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.
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 dozens of sibling readiness diagnostics (run_mica_casp_fit, run_dora_readiness_diagnostic, validate_slate_report_fields, etc.). Only 'Use synthetic or anonymised inputs only' constrains usage, which is an input-handling 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.
run_t1_readiness_diagnosticT+1 Settlement Readiness DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_t1_readiness_diagnostic").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context on top: transient, non-retained input processing, server-vs-browser compute resolution, gpu:true always delegating to the browser, and a deterministic AP2 artifact carrying execution_hash. It does not contradict the read-only annotations. Remaining unknown is whether the result is a score, a pass/fail, or a report.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by boilerplate that does not help an agent select the tool: a full HTML URL, a raw fv-status hash, and a seven-item list of downstream feed IDs. It is not front-loaded on what the tool does, and the closing pointer to describe_tool offloads the actual documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a nested additionalProperties object, a boolean flag, and no output schema, the description should carry the semantics of what is being diagnosed and what policy_parameters expect. Instead it outsources both to 'the tool's manifest' and describe_tool, leaving the core behaviour unexplained. Compute-mode and data-retention details are covered, but that is the least decision-critical part.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 duplicates the schema's compute-mode wording and says nothing about policy_parameters beyond deferring to 'the tool's manifest'; it only implicitly relates parent_hashes/parent_tool_ids via the chain-provenance mention. No 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title verbatim ('T+1 Settlement Readiness Diagnostic') and then spends the rest on infrastructure boilerplate (compute node, determinism, chain type). It never says what the diagnostic actually evaluates about T+1 readiness, nor does it distinguish this from the many sibling 'run_*_readiness_diagnostic' tools. The only concrete purpose-adjacent fact is that it exports an AP2 artifact with execution_hash.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 near-identical diagnostic siblings. The only usage constraint offered ('Use synthetic or anonymised inputs only') is a data-handling rule, not selection guidance. The downstream 'Output feeds' list hints at context but does not tell the agent when to invoke this tool.
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 DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, and the call exports an AP2 artifact carrying an execution_hash for chain provenance. That is genuine lifecycle disclosure. Minor gap: no mention of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool name and node type, and most sentences carry information, but 'Deterministic OpenChainGraph compute node' needlessly repeats the preceding phrase, and the trailing FV-status hash blob is bulky. More importantly, the text is structurally skewed toward mechanics rather than the diagnostic's subject.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and this is a nested-object, chain-provenance tool, so the description must carry more weight. It covers execution modes, retention, artifact export, and downstream feeds, but omits what the diagnostic assesses and what fields policy_parameters expects beyond pointing at an off-tool manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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's compute-mode narrative largely restates the enum description, and policy_parameters field names are deferred to an external manifest, so no meaning is added beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title say 'Tempo Fit Diagnostic', but the description never states what the diagnostic actually evaluates — it spends nearly all its text on compute routing, retention, and provenance mechanics. It names four downstream artifacts it feeds (art-35..40), which helps place it among siblings, yet an agent still cannot tell what question this tool answers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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' — but no explicit when-to-use guidance and no differentiation from the many sibling `run_*_fit_diagnostic` tools (run_arc_fit_diagnostic, run_mica_casp_fit, run_dora_readiness_diagnostic, etc.). 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.
run_tokenized_settlement_fitWholesale Tokenized Settlement Fit DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_tokenized_settlement_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond that: transient processing with no storage/logging/retention, a requirement to use synthetic or anonymised inputs, the server-vs-browser execution split, and the AP2 artifact with execution_hash for chain provenance. These are real behavioral facts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is front-loaded and the compute/transient-data statements are efficient, but the tail is boilerplate-heavy: a full FV-status hash, a URL, and an offline-verification caveat that add little to tool selection. Roughly half the text serves provenance/marketing rather than invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates reasonably by naming the exported artifact (AP2 with execution_hash), listing downstream consumers, and pointing to describe_tool for the output schema. Chaining inputs (parent_hashes/parent_tool_ids) are explained. It is nearly complete for a 4-parameter nested-object tool, missing only the actual decision semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the compute-mode prose in the description largely duplicates the schema's own enum description. The description adds no field-level detail for policy_parameters, explicitly deferring to 'the tool's manifest for field names', which leaves the core decision input opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('Wholesale Tokenized Settlement Fit Diagnostic') and identifies the tool as an OpenChainGraph compute node, but it never says what the diagnostic actually evaluates or what decision it produces. An agent learns the infrastructure envelope (compute modes, provenance export) rather than the substance of a 'settlement fit' assessment, so it cannot easily distinguish this from siblings like run_arc_fit_diagnostic or run_tempo_fit_diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The 'Output feeds:' list names downstream validators, which implies this is an upstream producer in a chain, but the description never states the conditions under which an agent should select this tool over the many other run_*_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_treasury_clearing_fitTreasury Clearing Fit DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_treasury_clearing_fit").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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. The description adds genuinely useful behavioral context: server-side execution on Cloudflare Workers with a registered kernel, browser delegation semantics for gpu:true nodes, transient non-retention of inputs, and the 'use synthetic or anonymised inputs only' constraint. Return format and failure modes are not described, keeping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with chain positioning, an external URL, an FV-status hash, a receipt disclaimer, and a pointer to describe_tool, all before any actionable substance. It is not front-loaded around what the tool computes, and much of the content is provenance/marketing scaffolding that does not help an agent invoke it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 offloads return details to describe_tool, which is a reasonable but incomplete delegation. It covers compute mode, chaining via parent hashes, and privacy, but leaves the actual decision output and its interpretation unexplained for a 4-parameter diagnostic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 largely repeats compute semantics without adding syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line name the domain (treasury clearing fit diagnostic) and the regulatory trigger (SEC UST clearing, cash Dec 31 2026 / repo Jun 30 2027), so the resource is identifiable. However, the description never states in plain terms what the diagnostic actually evaluates or returns; most of the text is chain/plumbing metadata, leaving the core purpose 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.
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 sibling comparison, despite dozens of similarly named 'run_*_fit' and readiness diagnostics that an agent must choose between. The only routing hint is 'Output feeds: art-49-clearing-access-model-selector, art-50-ficc-margin-netting-estimator', which describes downstream chaining, not selection.
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 DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_umr_aana_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful non-annotation context (transient processing, no storage/logging, synthetic-data-only warning, AP2 artifact with execution_hash), but it does not explain what the diagnostic actually inspects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with infrastructure boilerplate (OpenChainGraph node, Cloudflare Workers, delegation URLs, FV-status receipt) rather than the tool's actual decision purpose. Sentences do not earn their place relative to the task, and the key 'what this diagnostic tells you' is absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and no description of the result shape, despite the tool producing an 'AP2 artifact with execution_hash'. For a readiness-diagnostic with a nested policy_parameters object, the description omits what inputs it expects and what verdict it produces; it also defers output schema entirely to describe_tool, which is an unusual indirection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 only re-states the compute:'auto'/'browser' semantics that the schema already gives; it adds no further meaning, which is the expected baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'UMR / AANA Readiness Diagnostic' names a specific assessment and the description opens with the same phrase, but the body never explains what UMR or AANA are, what is being assessed, or what a 'readiness' result means. It reads more like platform boilerplate (compute binding, provenance) than tool purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, and no indication of when a readiness diagnostic is appropriate versus the many sibling assess_*/run_*_readiness tools (e.g. run_dora_readiness_diagnostic, run_t1_readiness_diagnostic).
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 DiagnosticBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, and closed-world behavior. The description adds real value beyond that: the compute:'auto'/'server'/'browser' resolution rules, gpu:true always delegating, and the data-handling guarantee that inputs are processed transiently and not stored/logged/retained, plus a synthetic-inputs-only warning. This is strong behavioral disclosure, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and compute semantics are reasonably front-loaded, but the passage is long and includes dense FV-status receipt text and a URL that read as boilerplate rather than selection-critical content. It is not wasteful enough to drop below 3, but it is not tight either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the return semantics — it does explain that the node exports an AP2 artifact with execution_hash for chain provenance. Combined with the upstream-artifact and data-handling notes, an agent has enough to call it correctly; only the internals of policy_parameters remain underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 context by naming the upstream artifact to chain from (art-163-...) and the expectation of execution_hash hashes, but policy_parameters field names are deferred to 'the tool's manifest', leaving the nested object opaque. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource ('run ... ViDA Compliance Readiness Diagnostic') and states it is an OpenChainGraph compliance_mandate compute node. The subject matter (ViDA) distinguishes it from the many sibling run_*_readiness_diagnostic tools, but it never explicitly names or contrasts those siblings, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how the node computes (compute modes, transient processing) but never says when an agent should choose this tool over alternatives such as assess_vida_drr_reporting_obligation, route_vida_oss_registration, or the DORA/T1 readiness diagnostics. No when/when-not guidance is present.
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 DiagnosticCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("run_vop_readiness_diagnostic").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive. The description adds genuinely useful non-annotated behavior: transient processing with no storage/logging, server vs browser compute delegation, AP2 artifact emission with execution_hash, and an FV-status receipt. However it does not disclose error modes, what a failed diagnostic looks like, or rate limits. It adds context but is not rich relative 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are front-loaded and useful, but the block then crams compute semantics, privacy, artifact export, a URL, and an FV-status hash without clear structure. Several clauses could be split for readability, and the trailing 'call describe_tool(...)' is boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 diagnostic returns, and it only hints at an AP2 artifact with execution_hash. For a compute/diagnostic tool with four parameters, missing return-shape and decision semantics is a real gap, though the compute/artifact/privacy context partially compensates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 thoroughly. The description restates compute mode behavior but adds no syntax, defaults, or constraints beyond what the schema provides. Baseline 3 is correct 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'VoP Readiness Diagnostic' compute node and names the underlying kernel (vop_readiness_attestation), but never states what a VoP readiness diagnostic actually evaluates or returns. Against siblings like run_agentic_readiness_diagnostic, run_dora_readiness_diagnostic, and run_t1_readiness_diagnostic, the resource is named but the specific outcome 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.
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 alternative routing. The description mentions compute mode semantics but never tells the agent when this diagnostic is the right invocation versus other readiness diagnostics. The only implicit guidance is '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.
scan_tool_poisoningMCP Tool-Poisoning & Prompt-Injection Manifest ScannerBRead-onlyIdempotentInspect
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). Output schema: call describe_tool("scan_tool_poisoning").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful context: 'runs client-side (zero PII, zero network)' and mentions it returns a risk score and flagged patterns. However, the claim that it 'Renders the interactive AINumbers tool as a widget' is confusing and could mislead an agent about the actual behavior, though 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and informative, but the second sentence is a jumble of unrelated details about widget rendering, AIN Bridge, client-side execution, and a meta-instruction to call describe_tool. This does not earn its place and obscures the core purpose, making the definition longer and less focusable than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description should be sufficient, but it leaves key gaps: what 'AINumbers' refers to, what 'manifest input_schema' means, and how the risk score is structured. The 'Output schema: call describe_tool(...)' line is unhelpful because it defers rather than informs. An agent would struggle to invoke this correctly based on the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema is fully described for the single 'inputs' parameter, so the baseline is 3. The description merely restates that inputs are applied via the AIN Bridge, which duplicates the schema text. It adds no meaning about how inputs map to the scanning logic or what values should be supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states a specific verb and resource: 'Scan an MCP tool description/manifest for tool-poisoning and prompt-injection smells; returns a risk score and flagged patterns.' This gives a distinct purpose. However, the description then veers into unrelated widget-rendering meta-commentary, and it does not explicitly differentiate from closely related siblings like lint_mcp_tool_definition or score_mcp_readiness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: when an MCP tool description/manifest needs scanning for poisoning or prompt-injection smells. But it offers no explicit exclusions, prerequisites, or comparisons to alternative tools such as lint_mcp_tool_definition or describe_tool. The trailing 'Output schema: call describe_tool(...)' is not practical usage guidance.
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 ScoperCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("scope_mica_token_and_service").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 or logging, a synthetic/anonymised input constraint, deterministic server-side kernel execution, and browser delegation semantics. It also discloses artifact export and provenance chaining, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and unfocused, burying the operation behind infrastructure talk, a raw artifact URL, and a long FV-status hash path. Several sentences about receipts and provenance chaining do little to help an agent select or call the tool, 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.
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 no output schema, the description covers data-handling and provenance expectations but leaves the core semantics unexplained and defers return shape to describe_tool. It is adequate on mechanics yet incomplete on what the tool actually returns or decides.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and nested params are documented, so the schema carries the load; baseline is 3. The description's compute-mode text mirrors the schema rather than adding meaning, and it says nothing extra about the opaque policy_parameters object beyond deferring to a manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name/title ('MiCA Token & Service Scoper') and then spends its length on infrastructure ('OpenChainGraph compute node (agent_guardrail_mandate)') rather than stating what the scoping operation actually computes or decides. It never distinguishes itself from close siblings like run_mica_casp_fit, assess_mica_casp_readiness, or check_mica_register_presence, so an agent cannot tell what this tool uniquely produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many MiCA siblings. The only routing advice is internal (compute:"auto" vs "browser"), which is about execution mechanics, not about selecting 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.
score_agent_insurability_evidenceAgent Insurability Evidence ScorerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_agent_insurability_evidence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior beyond them: deterministic execution, transient processing with no storage/logging/retention, AP2 artifact emission with execution_hash, and a verifiable FV-status snapshot receipt. It does not describe the response payload, but the extras 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated and repetitive ('Deterministic OpenChainGraph compute node' stated twice), and a long URL plus a 64-character status hash are inlined where prose purpose should be front-loaded. The most important information — what the tool computes — never appears.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description redirects to describe_tool for it, which is acceptable. Operationally it is fairly complete (compute modes, data retention, provenance export, downstream consumer), but for a nested-object decision-function tool it leaves the actual scoring semantics and policy_parameters contents unexplained, which is the core thing an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 (duplicating the schema text) and mentions chaining via parent hashes, but adds nothing about policy_parameters field names — it explicitly defers those 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.
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 names the artifact it exports, but never explains what 'insurability evidence scoring' actually does — the operative semantics are left to the name. It reads largely as a restatement of the title plus operational boilerplate, so an agent cannot tell from prose alone what the output means or how it differs from sibling scorers like 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.
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) and a data-handling warning ('Use synthetic or anonymised inputs only'), but no when-to-use/when-not-to-use framing and no comparison against the many sibling scoring/evidence tools. The 'Output feeds: art-307-claim-dispute-bundle-builder' line hints at pipeline position but is not invocation guidance.
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 ScorerARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_aml_typologies").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 traits beyond them: transient processing with no storage/logging/retention, deterministic execution, browser-delegation behavior for gpu:true nodes, and the emission of an AP2 artifact with execution_hash. These are genuine behavioral disclosures an agent needs when handling sensitive AML inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded title is good, but the body intermixes regulatory deadlines, a raw FV-status URL with a long hash, and a downstream-feed list with the actual invocation semantics (compute modes, ephemerality). It is dense with material an agent doesn't need to call the tool correctly, so it is more cluttered than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 compensates by describing the AP2 execution_hash artifact, the chaining mechanism, and pointing to describe_tool for the return shape, plus naming downstream consumers. For a four-parameter scoring node with full schema coverage this is complete enough, though the deferred output-schema lookup leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 pair. The description largely restates the compute semantics rather than adding 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first sentence identify it as a deterministic OpenChainGraph compute node for AMLA transaction-typology risk scoring (node class risk_control). The verb+resource is clear, though the purpose statement is buried under regulatory-deadline and provenance boilerplate rather than front-loaded, and it never explicitly distinguishes itself from sibling scorers like customer_risk_rating 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real usage constraints (use synthetic/anonymised inputs only; compute mode selection between auto/server/browser) and names downstream consumers, which is helpful context. But there is no explicit when-to-use-this vs a sibling AML/risk-scoring tool, and no prerequisites for chaining parent_hashes. Guidance 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.
score_cash_forecast_accuracyCash Forecast Accuracy ScoringCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_cash_forecast_accuracy").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, yet the description adds real behavioral facts: deterministic execution, transient processing with no storage/logging/retention, synthetic-inputs-only policy, compute-mode routing including browser delegation URLs, and an AP2 artifact with execution_hash for provenance. It does not describe the returned payload, but it points to describe_tool for that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dominated by infrastructure boilerplate (kernel registration, Cloudflare Workers, FV-status hash URL, chain provenance) that does little to help tool selection. The functional purpose is buried after a title restatement, and the FV-status snapshot sentence is particularly low-value for an invoking agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Chaining inputs, data-handling policy, and artifact provenance are covered, and output shape is delegated to describe_tool, so the core is present. However, for a scoring tool the description never indicates what the decision function consumes or how the forecast/actual series should be supplied through policy_parameters, leaving the calling contract opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 what the schema already states for the compute enum, and policy_parameters is explicitly deferred to 'the tool's manifest' rather than clarified, so no value is added beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first clause restates the title, and the rest identifies the node class (analytics_mandate compute node) and infrastructure behavior, but never says what 'accuracy scoring' actually computes (e.g. MAPE/bias/RMSE) or what inputs it expects. It also fails to distinguish itself from the near-identical sibling compute_forecast_accuracy_score. 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.
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 named alternative, which matters given the sibling compute_forecast_accuracy_score. The only usable context is the list of upstream artifacts it consumes (art-258 parse_camt053_reconciliation, art-261 test_hedge_effectiveness), which implies sequencing but is never framed as 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 ScorerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 usefully adds that inputs are processed transiently and never stored or logged, that compute:'browser' returns a delegation URL instead of a result, and that an AP2 artifact with execution_hash is exported. These are real additions, but they are infrastructure traits rather than behavior of the scoring itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Reasonably front-loaded and chunked, but 'OpenChainGraph compute node' is stated twice and a large share of the text is shared infrastructure boilerplate (compute binding, FV-status receipt URL) rather than tool-specific content. The verbosity is not wasted entirely, but it crowds out the actual purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter scoring node with a free-form nested policy_parameters object and no output schema, the definition leaves the critical input contract unspecified ('see the tool's manifest'), and never says what the score result looks like. The provenance/delegation details are covered, but the core compute contract an agent needs to call this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 repeats the compute-mode semantics but adds nothing about policy_parameters beyond deferring to 'the tool's manifest for field names', which is outside this definition. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line restates the name and title ('Clause Coverage Scorer: OpenChainGraph compute node') and adds only a domain tag (compliance_mandate). Nothing explains what a clause-coverage score actually measures, what clauses are examined, or what output is produced, so the reader cannot distinguish its function from any other 'score_*' sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The compute-mode text explains how to select server vs browser execution, but that is invocation mechanics, not when-to-use-this-tool. There is no statement of when to choose score_clause_coverage over the many adjacent clause/coverage siblings, nor any prerequisites beyond a generic 'use synthetic inputs' caution.
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 ScorerARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_credit_default_risk").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, non-destructive, idempotent, closed-world). The description adds genuinely useful behavior beyond that: deterministic execution, compute-mode routing (auto/server/browser, browser delegation for gpu:true), transient non-retention of inputs, and an AP2 artifact with execution_hash for provenance. Return format details are absent, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense wall of metadata: a restated title, long regulatory-deadline citations, an FV-status URL and hash, and a docs link. The core purpose is not front-loaded and much of the text (hash receipt, external URLs) does not help 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compute node with no output schema, the description covers execution mode, provenance chaining inputs, retention behavior, and downstream consumers, and defers output shape to describe_tool. It is largely complete, though it omits what the scoring result contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute:'auto' server-side behavior but adds no semantics beyond the schema, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (credit default risk scoring) and identifies itself as an OpenChainGraph compute node in the credit_assessment family, which distinguishes it from non-scoring siblings. It is somewhat buried under metadata, but an agent can tell it performs credit default risk scoring rather than, say, model quantization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a real input constraint ('Use synthetic or anonymised inputs only') and names upstream/downstream artifacts (art-05..., sim-03..., ptg-01...), implying workflow placement. However it never states when to choose this tool over a sibling scorer or what preconditions must hold, so 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.
score_credit_model_quantizedQuantized Credit Model ScorerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_credit_model_quantized").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavior beyond that: deterministic execution, transient processing with no storage/logging/retention, GPU delegation semantics, and export of an AP2 artifact carrying execution_hash for chain provenance. That is meaningful disclosure about what happens to inputs and outputs. It stops short of describing failure modes, latency, or kernel availability conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The front-loaded compute and data-handling sentences earn their place, but the FV-status paragraph and the long verification URL are verbose boilerplate that dilutes the core message. The description reads as a template block with the tool's actual scoring semantics never stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic compute node with a nested, opaque policy_parameters object and no output schema, the description adequately covers execution modes, data handling, and provenance, and it correctly points to describe_tool for the output schema. It is incomplete on domain semantics: an agent cannot tell what inputs policy_parameters expects or what a credit-assessment result means without an extra manifest lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mirrors what the schema already documents, and parent_hashes/parent_tool_ids chaining semantics are likewise in the schema. For policy_parameters it defers entirely to 'See the tool's manifest for field names,' adding no meaning beyond the structured field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 credit_assessment domain and states it produces an AP2 artifact, so the general category is clear. However, it never explains what 'quantized credit model scoring' actually computes or how it differs from siblings such as score_credit_default_risk or score_aml_typologies. The opening line largely restates the name and title, leaving the actual purpose vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is real operational guidance: it explains that compute:'auto' resolves server-side for gpu:false nodes, 'browser' returns a delegation URL, and gpu:true always delegates, plus the constraint to use synthetic/anonymised inputs only. What is missing is any tool-selection guidance — no statement of when to reach for this scorer versus the many other scoring and credit-risk 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.
score_eudr_country_riskEUDR Country Benchmark Risk ScorerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_eudr_country_risk").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 well beyond them: compute-mode resolution (auto/server/browser delegation, gpu:true always delegates), transient input handling with no storage/logging/retention, synthetic-input requirement, and AP2 artifact export with execution_hash for chain provenance. These are exactly the beyond-annotation behaviors 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The key purpose is buried behind a title restatement, then a mix of compute-binding mechanics, a long FV-status hash URL, an external page URL, and a describe_tool pointer. Some sentences (transient processing, artifact export, downstream feed) earn their place, but the receipt-hash blob and URL are heavy relative to selection value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description supplies the operational envelope (compute modes, chaining, artifact/provenance export) and redirects to describe_tool for the output shape. policy_parameters contents are deferred to 'the tool's manifest', which is a minor gap but acceptable given 0 required params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 a compressed restatement of compute mode plus chaining intent ('sets chain.parent_hashes'), so baseline 3 is appropriate; it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title state the resource ('EUDR Country Benchmark Risk'), but the description body only restates the title and labels itself a 'compute node (compliance_mandate)' without saying what the score means or computes. It never distinguishes itself from siblings such as run_eudr_readiness_fit, classify_eudr_commodity_scope, or link_eudr_supply_chain_traceability. Purpose is inferable but not clarified by the prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative. The only routing hint is 'Output feeds: art-169-eudr-supply-chain-traceability-linker', which describes downstream consumption, not when an agent should select this tool. An agent gets no help choosing between this and the many EUDR siblings.
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 ScorerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 operational traits: determinism, transient input processing that is not stored or logged, the server-vs-browser delegation semantics, gpu:true always delegating, and AP2 artifact export with execution_hash. That is meaningful added behavioral context, though it omits failure modes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The provenance and compute information is front-loaded usefully, but the opening sentence redundantly restates the title, and the trailing FV-status hash/receipt sentence is verbose boilerplate relative to its selection value. Dense but with avoidable padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter, no-output-schema compute node whose annotations already cover the safety profile, the description supplies the provenance chain, the transient-processing guarantee, and the compute-mode contract. It is close to complete; only an explicit purpose statement is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description and adds no format detail for the parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description repeats the name/title ("Fuzzy-Match Calibration Scorer: OpenChainGraph compute node") rather than stating what the tool actually computes — no verb+object phrase describes the calibration logic. The artifact lineage (consumes art-90-sanctions-screening-fit-diagnostic, feeds art-97-sanctions-screening-quality-scorer) hints at the domain and position in the chain, but the core purpose remains only inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is an input-hygiene instruction ("Use synthetic or anonymised inputs only") and compute-mode guidance, which gives some implied usage context. However, nothing says when to reach for this tool versus siblings like score_sanctions_screening_quality or run_sanctions_screening_fit, and 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.
score_mcp_readinessMCP Developer Readiness ScorecardARead-onlyIdempotentInspect
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). Output schema: call describe_tool("score_mcp_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
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 useful context beyond annotations: it renders as an interactive AINumbers widget, inputs are applied via the AIN Bridge, and it runs client-side with zero PII and zero network activity. This is meaningful transparency for an agent deciding whether invocation is safe and appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler: purpose, execution behavior, and output-schema access. The most decision-relevant facts are front-loaded, and every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the composite scoring scope, client-side execution, data-safety properties, and directs the agent to describe_tool for the output schema. It is reasonably complete for an interactive widget tool, though it relies on an external describe_tool call and does not explain score semantics or input element details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 'inputs' map as element ID-to-value pairs applied via AIN Bridge prefill. The tool description mostly repeats this and adds that the tool runs client-side, but it does not meaningfully explain what particular inputs are expected or how they influence the score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 a composite MCP server ship-readiness score' across concrete dimensions (tool definitions, server.json, OAuth, transport, tool poisoning, spec compliance). This is clear and informative, though it does not explicitly distinguish itself from closely named siblings like score_mcp_server_readiness or run_mcp_deployability_diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 similar MCP readiness/score siblings. The description states what the tool does and that it renders a widget, but offers no conditions, exclusions, or alternative suggestions.
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 ScorecardCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_mcp_server_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: the auto/server/browser compute binding, gpu:true delegation, transient non-stored input handling, and an exported AP2 artifact carrying execution_hash. This is meaningful operational disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is long and dense, and the core purpose is buried under compute-binding mechanics and an enumerated list of seven upstream artifact IDs (art-17 through art-28) that reads as metadata noise. A URL and FV-status receipt hash are included that 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.
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 policy_parameters object, the description covers provenance chaining and compute behavior but defers the return shape to describe_tool. It is adequate for calling the tool but leaves output and result semantics to another call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 chains but adds little syntax or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening identifies it as the 'MCP Developer Readiness Scorecard' OpenChainGraph compute node, which implies a scoring function, but the actual verb+resource is never stated plainly - 'scores MCP server developer readiness' is left implicit. It does not clearly differentiate itself from close siblings like score_mcp_readiness, run_mcp_deployability_diagnostic, or prevalidation_readiness_scorer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance or selection criteria versus sibling scoring/diagnostic tools. The only usage constraint offered is 'Use synthetic or anonymised inputs only,' which is an input-handling note 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.
score_mt_mx_translation_fidelityMT103 to MX Translation Fidelity ScorerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_mt_mx_translation_fidelity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful behavior beyond that: transient processing with no storage/logging/retention, an AP2 artifact export with execution_hash, and an upstream dependency on art-244. However, it never describes what the fidelity score output contains or what happens on a mismatch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with boilerplate: a full FV-status SHA-256 URL, chain-provenance jargon, and an instruction to call describe_tool for the output schema. The actual purpose occupies one clause, so the signal-to-noise ratio is poor and the useful information is not front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers output discovery to describe_tool, so an agent gets no sense of what a fidelity score looks like or how to interpret it. It does at least disclose the compute modes, data-handling policy, and upstream artifact dependency, making it minimally adequate for a 4-parameter compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 duplicates the enum's own description and adds nothing about policy_parameters field names, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title carry the purpose ('MT103 to MX Translation Fidelity Scorer'), but the body only restates it before pivoting to generic compute-node boilerplate. It never explains what 'fidelity scoring' measures or distinguishes this tool from sibling translation/mapping tools such as map_mt9xx_to_camt or check_mt101_coexistence_readiness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is about compute-mode selection ('auto' vs 'server' vs 'browser'), which is execution plumbing rather than task guidance. There is no statement of when this tool should be chosen over alternative translation or conformance tools, and no prerequisites beyond '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.
score_nis2_incident_significanceNIS2 Incident Significance Scorer (Art. 23 Reporting Threshold)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_nis2_incident_significance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful context: compute placement (server vs browser delegation, gpu:true always delegates), transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for provenance. That is genuine 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition leads with a duplicated title and then spends significant space on boilerplate: an FV-status receipt hash, a documentation URL, and a snapshot disclaimer. The compute and retention sentences earn their place, but the receipt/URL material dilutes a short description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 model, data handling, provenance export and one downstream consumer, which is solid infrastructure context. It does not, however, describe the decision function's inputs or what constitutes 'significant' under Art. 23, and defers policy_parameters to a manifest, leaving the substantive domain behavior opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 repeats the compute-mode semantics rather than adding new meaning, and policy_parameters is deferred to an external manifest, so no value is added over structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line identify a specific verb+resource: scoring NIS2 incident significance against the Art. 23 reporting threshold. However, the body never explains what factors determine significance or what the score means, and the naming does not clearly route an agent away from siblings such as classify_nis2_entity or calculate_nis2_penalty_exposure. Purpose is understandable but thin 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.
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 tool versus the many other NIS2/DORA incident tools. The only usable guidance is a downstream chaining hint ('Output feeds: art-145-nis2-ict-supply-chain-diligence-scorer') and a data-handling constraint ('Use synthetic or anonymised inputs only'). Neither tells the agent when this scorers 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.
score_nis2_supply_chain_diligenceNIS2 ICT Supply-Chain Diligence Scorer (Art. 21(2)(d) / ENISA)ARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_nis2_supply_chain_diligence").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: deterministic computation, transient non-stored/non-logged input handling, a 'use synthetic or anonymised inputs only' warning, and the AP2 artifact/execution_hash export. The compute-mode explanation is repeated from the schema, but the data-handling and provenance details are value-add 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and chain context are front-loaded, which is good, but a large share of the text is ChainGraph runtime boilerplate that duplicates the input schema plus an FV-status paragraph containing a 64-char hash that consumes space without helping tool selection. It is appropriately sized for a complex node but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a no-output-schema compute node with nested policy_parameters, the description supplies chain position, upstream/downstream artifacts, data-handling guarantees, and a pointer to describe_tool for the return shape. The main gap is that the actual policy_parameters fields are never named, leaving the core input opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 marginally reinforces parent_hashes/parent_tool_ids chaining but explicitly defers the key input field names to 'the tool's manifest', adding no detail over the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (a deterministic scorer for NIS2 ICT supply-chain diligence under Art. 21(2)(d)/ENISA) and situates it as an OpenChainGraph compute node. It is identifiable, though the domain framing is diluted by infrastructure boilerplate about compute bindings and FV-status receipts rather than what the score actually measures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The chain-positioning lines ('consumes upstream from art-144-nis2-incident-significance-scorer', 'output feeds art-146...') give real routing context for when this node fits in a pipeline. However, it never contrasts itself with close siblings such as check_nis2_art21_measures, check_nis2_governance_readiness, or score_nis2_incident_significance, so an agent must infer the choice.
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 ConformanceBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_partner_stablecoin_readiness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine behavior beyond them: transient processing with no storage/logging/retention, a 'use synthetic or anonymised inputs only' constraint, compute-mode fallback semantics, and export of an AP2 artifact carrying execution_hash for provenance. These disclosures materially inform safe invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with infrastructure boilerplate, a URL, and a long FV-status hash, while front-loading a restatement of the title. Useful facts (transience, provenance export, pipeline links) are mixed with low-value scaffolding, so it earns partial credit but is longer than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter compute node with no output schema, the description covers compute modes, data-handling constraints, provenance export, and upstream/downstream chaining, and it explicitly routes to describe_tool for the output schema. This is nearly complete for correct invocation, with only the actual scoring semantics left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents compute (with enum), parent_hashes, parent_tool_ids and policy_parameters. The description largely restates the compute-mode behavior already in the schema and only gestures at policy_parameters by pointing to 'the tool's manifest for field names', adding little beyond structured data. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name convey that this scores Arc partner stablecoin onboarding conformance, but the description itself never states the scoring/resource verb in plain terms — it opens with a restatement of the title and then describes infrastructure ('OpenChainGraph compute node (compliance_mandate)'). An agent gets the gist from the name/title, not from an explicit description of what is being scored or how, so 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given, and no siblings are named as alternatives. The upstream/downstream artifact references ('consumes from art-42-arc-fit-diagnostic', 'feeds art-45-arc-xreserve-linter') hint at pipeline position but do not tell the agent when to pick this tool over route_partner_stablecoin_jurisdiction or run_arc_fit_diagnostic.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_payee_name_match").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only/idempotent/non-destructive, but the description adds genuinely useful behavior: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs only, compute:'browser' returns a delegation URL instead of a result, gpu:true always delegates, and an AP2 artifact with execution_hash is exported. That is real disclosure beyond the structured fields; only the lack of any note on cost/latency or failure modes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The payload is dominated by infrastructure boilerplate: a restated title, kernel/delegation detail, and a 64-hex FV-status URL plus a disclaimer that it verifies offline. These do not help an agent decide or invoke, and they push the (thin) functional content out of the front position.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute tool with no output schema, the description should describe what comes back — the score, its range, thresholds, or artifact shape — and it does not, instead deferring to describe_tool for an output schema that does not exist. The required policy_parameters field names are also left to an external manifest, so an agent cannot call this meaningfully from the definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the parent_hashes/parent_tool_ids chaining semantics are already documented in the schema; the description largely repeats the compute-mode text. Critically, it says nothing about policy_parameters beyond pointing to 'the tool's manifest', so the one opaque nested object remains unexplained in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title name a specific verb+resource (score a payee name match, VoP/CoP context), but the description body never explains what the score means or how it is derived — it immediately pivots to OpenChainGraph infrastructure (compute nodes, kernels, FV-status). It also never distinguishes this from close siblings like simulate_vop_matching or run_vop_readiness_diagnostic, so an agent gets the topic but no functional definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 neighbouring VoP tools (simulate_vop_matching, build_vop_session_receipt, run_vop_readiness_diagnostic). The only conditional text concerns compute mode selection, which is an execution concern, not a task-selection one.
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 ScorerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_sanctions_screening_quality").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, and the description adds real context beyond them: deterministic execution, compute-mode delegation semantics ('browser' returns a delegation URL, gpu:true always delegates), transient processing with no logging or retention, and export of an AP2 artifact with execution_hash for chain provenance. It even warns to use synthetic/anonymised inputs only. It stops short of describing the scoring behavior itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense run-on of infrastructure boilerplate — compute-binding mechanics, a full FV-status filename with a 64-char hash, and an artifact URL — that crowds out the functional statement an agent actually needs. The one genuinely useful signal (upstream/downstream chaining) is buried mid-paragraph. It is not wasteful in the sense of padding words, but it is badly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description points at describe_tool for the shape of the result, and the input schema fully documents the 4 parameters, so those gaps are covered elsewhere. What remains missing is the substantive part: what the quality score evaluates, what policy_parameters fields the kernel expects, and what the AP2 artifact contains. Adequate for calling the tool mechanically, thin for calling it intelligently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 what the schema already documents (compute modes and their behavior), and for policy_parameters it defers entirely to 'the tool's manifest' — the same deferral the schema makes — so no additional field-level meaning is added. No compensation is needed, but no value is added either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title states the resource (a sanctions screening-program quality score) but the description never explains what the score measures, what it returns, or how it differs from siblings like run_sanctions_screening_fit or screen_sanctions_private. It identifies itself through provenance metadata (upstream artifacts art-92/art-93, downstream cry-05) rather than through a functional statement. Purpose is implied but never crisply specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Consumes upstream artifacts from...' and 'Output feeds...' lines imply this runs after list-coverage and fuzzy-match calibration scoring, which is useful workflow context. However, there is no explicit when-to-use/when-not-to-use guidance and no comparison against the many sibling sanctions tools. Usage is inferable but not instructed.
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 ScorerBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("score_taxonomy_alignment").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds real value on top: compute:'auto'/'server'/'browser' execution routing, gpu:true always delegating to the browser, transient non-stored/non-logged input handling, and an AP2 artifact export with execution_hash. It stops short of describing output contents 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense and information-bearing, but it is not front-loaded: what the tool computes is buried under execution/plumbing detail, and the long FV-status receipt sentence reads as boilerplate. Several sentences earn their place; the structure does not prioritize the agent's core question.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with a nested policy_parameters object and no output schema, the description covers execution modes, privacy handling, provenance, and the artifact it emits (partially substituting for a missing output schema). It still omits what policy_parameters should contain and what the alignment result/artifact actually expresses, leaving a gap for a scoring tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 parent_hashes/parent_tool_ids purpose. The description touches parent_hashes only implicitly via the 'Consumes upstream artifacts from art-68' line and defers policy_parameters fields to 'the 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence largely restates the name/title and adds only the node classification ('OpenChainGraph compute node (compliance_mandate)'). The remaining text explains chain mechanics (compute modes, artifact export, upstream/downstream feeds) rather than what the alignment scoring actually computes. An agent knows the resource (EU Taxonomy alignment) but not the verb semantics of the score itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a data-handling constraint ('Use synthetic or anonymised inputs only') but no when-to-use/when-not guidance and no explicit routing to alternatives among the many sibling scoring/assessment tools. The upstream/downstream artifact references imply 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.
score_tempo_validator_readinessTempo Validator Readiness ScorerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, and the description adds real behavioral context beyond that: transient processing with no storage, logging or retention, the synthetic-inputs-only rule, the AP2 artifact emission with execution_hash, and the note that the FV-status file is a snapshot rather than a subscription. These are genuine 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening redundantly restates the title immediately followed by a near-duplicate sentence ('Deterministic OpenChainGraph compute node'), and the long provenance URL plus FV-status hash consume a large share of the text. The compute/privacy content is front-loaded and useful, but several sentences do not earn their length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters (one a free-form nested object) and no output schema, the definition covers environment, privacy and artifact emission but leaves the actual domain contract opaque: what fields policy_parameters accepts and what a readiness score consists of are pushed to an external manifest/URL. It is adequate for invoking the tool mechanically, not for understanding its result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 explanation largely duplicates the schema text and adds nothing for parent_hashes/parent_tool_ids, while policy_parameters is deferred to an external '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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title ('Tempo Validator Readiness Scorer: OpenChainGraph compute node') and then spends its length on infrastructure mechanics — compute binding, artifact export, a spec URL. It never says what 'validator readiness' actually measures, what policy_parameters are evaluated, or how this differs from siblings like run_tempo_fit_diagnostic or validate_tempo_token_compliance. An agent learns it is a deterministic compute node but not what it computes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 appears. The only routing-like content is the compute-mode selection (auto/server/browser), which is a per-call setting already documented in the schema, not a reason to pick this tool over the many other tempo/readiness siblings. The 'use synthetic or anonymised inputs only' line 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.
screen_je_rulesetJournal-Entry Ruleset ScreenBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("screen_je_ruleset").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful traits: transient processing with no storage or logging, deterministic computation, browser delegation semantics for gpu:true nodes, and export of an AP2 artifact carrying execution_hash for provenance. It also clarifies that the FV-status file is a snapshot receipt 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with name and node type, which is good, but it then duplicates the compute-mode explanation already present in the schema's compute property, and spends substantial space on a spec URL and a long FV-status hash string. Several sentences repeat structured data rather than adding new meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Operationally thorough for a compute node (privacy, determinism, provenance artifact, output-schema pointer to describe_tool), but it omits the single most important piece: what the JE ruleset screen actually checks and returns. An agent knows how to invoke it but not what decision it yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explanation largely restates the enum's own description. It adds only marginal value by pointing to the tool manifest for policy_parameters field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 family, but never states what a 'Journal-Entry Ruleset Screen' actually evaluates or what decision it returns. It distinguishes itself from generic compute nodes only by category, not from the dozens of other compliance_control siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is operational (compute mode selection) and a data-handling constraint ('use synthetic or anonymised inputs only'). There is no statement of when to reach for this tool versus related JE/screening siblings, and no exclusions or prerequisites for the task itself.
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 ScreenBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("screen_onledger_transfer_batch").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, browser mode returns a delegation URL, and the output is an AP2 artifact carrying an execution_hash. No contradiction with the read-only/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is buried under infrastructure boilerplate, an artifact URL, and a long FV-status hash path with an offline-verification aside that does not help an agent call the tool. The output-schema pointer ('call describe_tool(...)') is useful, but the whole block is poorly front-loaded and padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 point to describe_tool for the return shape and names the upstream artifact dependency, which is helpful. But the actual screening semantics and the policy_parameters field names (the core input) are left to an external manifest, so an agent cannot fully 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.
Does the 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 pairing, and policy_parameters. The description only echoes the compute-mode semantics and the upstream artifact chaining; it adds nothing about the opaque policy_parameters fields 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('On-Ledger Transfer Batch Screen') and labels it an OpenChainGraph compute node, but never actually states what the screening does — no mention of which transfers, which policy/ruleset, or what 'screen' returns. An agent must infer the function entirely from the name, and there is no differentiation from the close sibling screen_tip20_transfer_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real call-time guidance — compute:"auto" vs "browser" vs server, browser-delegation behavior for gpu:true nodes, 'Use synthetic or anonymised inputs only', and upstream chaining from art-288-map-iso20022-to-evm-calldata. However, it never says when to pick this tool over sibling screeners (screen_tip20_transfer_batch, screen_sanctions_private), so routing remains implied.
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 ScreenBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("screen_sanctions_private").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive context: inputs are processed transiently and not stored, logged, or retained, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for chain provenance. That is real behavioral disclosure beyond the structured fields, though return format details are left to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening compute-node framing is front-loaded, but the text is bloated with a raw URL, a 64-character FV-status hash, and repeated phrasing ("Deterministic OpenChainGraph compute node" follows "compute node"). Several sentences do not earn their place relative to what an agent needs to invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 tell the agent the output is an AP2 artifact with an execution_hash and points to describe_tool for the return shape, which partly compensates. But for a screening tool with nested policy_parameters and multiple sibling alternatives, it omits the core semantic of the screening itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters including the compute enum and parent_hashes/parent_tool_ids chaining semantics. The description's compute-mode sentences largely restate the schema's own compute description and add no syntax or usage detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 for a "Private-Input Sanctions Screen" and describes the compute modes, but never states what the screening actually does — the decision function is deferred to policy_parameters and the tool's manifest. An agent cannot tell from the text whether it is screening names, entities, or transactions, nor how it differs from siblings like score_sanctions_screening_quality or build_sanctions_screening_evidence_pack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is one genuine usage instruction — "Use synthetic or anonymised inputs only" — which constrains input choice, and the compute-mode narrative implies when each mode applies. However, there is no explicit when-to-use guidance relative to the many sibling screening tools, nor any statement of preconditions beyond the input-privacy rule.
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 ScreenerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("screen_tip20_transfer_batch").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context beyond that: transient server-side computation, browser delegation for gpu:true nodes, the 'use synthetic or anonymised inputs only' constraint, AP2 artifact export with execution_hash, and the upstream/downstream artifact chain. These are meaningful operating facts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded, but the definition is bloated with low-value material: a raw CVX-style URL, an enormous FV-status hash string, and kernel/delegation boilerplate. The URL and hash in particular do not help an agent decide or invoke the tool, and the actual purpose statement is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, open policy_parameters object, the description partially compensates by covering compute routing, chaining and artifact export, and it points to describe_tool for the output shape. However it explicitly defers policy_parameters field names to 'the tool's manifest', leaving the primary decision inputs undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 paragraphs on compute modes and parent artifacts largely restate the schema rather than adding syntax or semantics, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels itself as 'Tempo On-Chain AML & Travel Rule Screener' and an 'OpenChainGraph compute node (aml_rule)', which conveys the domain but never states the operational verb+resource (e.g. 'screen a batch of TIP-20 transfers for AML/Travel Rule compliance'). It does not distinguish itself from the near-identical sibling screen_onledger_transfer_batch, so the agent must infer the action 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use versus when-not guidance, no prerequisites, and no routing to the closest alternative (screen_onledger_transfer_batch, validate_tfr_travel_rule_batch). Only a weak implication from the title domain hints at usage context.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| claims | Yes | Claim key-value pairs to issue (required, at least one entry). | |
| subject | No | sub claim. Default: "subject-001". | |
| selective_keys | No | Top-level claim keys marked selectively disclosable. Keys not listed stay always-disclosed cleartext. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| aud | No | KB-JWT audience. Supplying this adds a holder-binding KB-JWT to the presentation. | |
| nonce | No | KB-JWT nonce. Auto-generated if aud is set and this is omitted. | |
| sd_jwt | Yes | An SD-JWT string with all disclosures attached, as returned by sdjwt_issue. | |
| keep_keys | No | Disclosure keys to keep in the presentation. Default: none (all disclosures redacted). | |
| issuer_did | No | The sd_jwt's issuer did:key, to verify the JWS and populate verifier_view + receipt. |
TDQS
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.
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.
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.
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.
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.
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 SelectorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("select_agentic_checkout_protocol").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic execution, the server-vs-browser 'compute' routing with gpu:true always delegating, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash. That is meaningfully more than 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense and front-loads jargon ('OpenChainGraph compute node (routing_policy)'), then pads with a URL, a 64-hex FV-status path, and an offline-receipt aside that do not help an agent decide or invoke. Much of the tail is provenance boilerplate rather than operational content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description should explain what the tool decides and what it returns; instead it points at an external manifest and an HTML page that the agent cannot fetch during invocation. Combined with 0 required params and no usage guidance, key invocation information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 largely restate the 'compute' enum description. policy_parameters is only said to be 'input parameters for this tool's decision function... See the tool's manifest,' so the description adds little beyond the structured schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line identify a 'selector' for the Agentic Checkout Protocol and characterize it as a routing_policy compute node, which is a verb+resource, but the actual decision the node makes is never stated—the description defers to 'the tool's manifest for field names.' It also does nothing to distinguish itself from near-neighbors like compare_agentic_payment_protocols, compare_agentic_rail_protocols, or audit_acp_ucp_product_feed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 protocol-comparison and ACP-validation siblings, and no exclusions. The only directive, 'Use synthetic or anonymised inputs only,' 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.
select_cbe_licenseCan't Be Evil License SelectorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("select_cbe_license").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior: inputs are processed transiently and not stored or logged, synthetic inputs only are advised, and execution_hash provenance is exported. These operational and privacy traits go meaningfully 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with infrastructure context (Cloudflare Workers, kernel registration), a full documentation URL, a 64-character FV-status hash, and a trailing instruction to call describe_tool. These crowd out the core purpose and leave the definition poorly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters with a nested policy_parameters object and no output schema, the description covers compute delegation, retention posture, and chaining well enough, and points to describe_tool for output shape. However, it never clarifies what policy_parameters should contain for this specific decision function, which is the tool's actual input payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 only re-touches compute modes and defers policy_parameters field names to the 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as a 'License Selector' compute node and states it exports an AP2 artifact, but it never explains what the license selection actually decides or how it differs from siblings like select_embedded_license, choose_cc_license, or assemble_license_terms. The opening line largely restates the title and then pivots to infrastructure boilerplate 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is detailed guidance on compute mode ('auto' vs 'browser' vs server, gpu:true behavior), but that governs execution, not when to choose this tool over its many license-related siblings. No context is given for when a 'Can't Be Evil' license selection is appropriate versus other license tools.
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 SelectorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("select_embedded_license").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, synthetic or anonymised inputs are required, compute:'auto' vs 'browser' routing, gpu:true always delegating, and the export of an AP2 artifact carrying execution_hash. This is genuinely additive context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded with the tool identity and compute behavior, but the paragraph is dense with infrastructure boilerplate and a marketing-flavored FV-status sentence ('a snapshot, not a subscription...') that does not help an agent invoke the tool. Signal is present but padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does explain the execution model, transient data handling, and the AP2 artifact output with execution_hash, plus upstream/downstream chaining. However it omits what the underlying decision function actually selects or computes, which is the core thing an agent needs. 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.
Does 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 largely restates the compute-mode semantics already present in the schema and adds nothing for 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.
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 the 'compliance_mandate' spec and the title implies selecting an embedded license, but it never states what the tool actually decides or produces at the domain level. It does not distinguish itself from close siblings such as select_cbe_license, choose_cc_license, or assemble_license_terms. Purpose is inferable from the name but vague 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through pipeline context ('Consumes upstream artifacts from art-198...', 'Output feeds: art-204...') and the compute-mode guidance. There is no explicit when-to-use/when-not guidance versus the many license-related siblings. The synthetic-input directive is the only clear usage rule.
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 SandboxCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_agent_spend_policy").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behaviour, but the description adds genuinely useful traits: inputs are processed transiently with no storage/logging/retention, an AP2 artifact with execution_hash is exported, and compute:'browser' returns a delegation URL instead of a result. The delegation-URL behaviour is a non-obvious outcome an agent needs to know before calling. It stops short of describing response shape, but that is partly deferred to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entry leads with boilerplate identity text rather than the tool's function, then pads with URLs and an FV-status content hash that an agent cannot act on. Compute-mode details are repeated verbatim in the schema, so sentences are spent on redundancy rather than front-loaded purpose. Structure is present but wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers privacy, provenance, and chain placement, and routes return-shape discovery to describe_tool — reasonable. The real remaining gap is the opaque policy_parameters object, punted to 'the manifest', leaving the agent without the decision-function field names it must supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 are already documented in the schema, and the description's compute-mode explanation duplicates that text rather than extending it. For the nested policy_parameters object the description defers to 'the tool's manifest for field names', which adds no usable field-level meaning. Baseline 3 is appropriate given the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence restates the title and an internal node identifier ('Agentic Mandate Sandbox: OpenChainGraph compute node (agent_guardrail_mandate)') without ever stating what the tool actually computes. An agent cannot tell from this text what a spend-policy simulation does or how it differs from the sibling simulate_spend_policy or agentic_mandate_sandbox. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use synthetic or anonymised inputs only' plus the declared upstream (art-27-agentic-readiness-diagnostic) and downstream (art-16-google-ap2-mandate-builder) chain positions imply when this tool belongs in a pipeline. However, there is no explicit when-to-use statement and no differentiation from the near-namesake siblings simulate_spend_policy and agentic_mandate_sandbox.
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 SimulatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored, logged, or retained; execution is deterministic; and it exports an AP2 artifact with an execution_hash for provenance. The compute-mode semantics (server vs browser delegation, gpu:true always delegates) are also behaviorally relevant, though partially duplicated 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with chain-graph boilerplate (FV-status snapshot disclaimer, offline-receipt language, URLs) that crowds out the actual purpose. It is not front-loaded: the tool's function is stated only in the first fragment before drifting into compute-mode and provenance mechanics. Several sentences would not earn their place for an agent trying to decide whether to call this.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and nested policy_parameters, the description should carry more weight on return shape and parameter content. It does state that an AP2 artifact with execution_hash is exported and lists upstream/downstream artifacts, which helps with chain wiring, but the actual decision output and policy_parameters fields are left to external references.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the chaining intent (consuming upstream artifacts) and reiterating compute modes, but it defers policy_parameters field names to 'the tool's manifest' rather than clarifying them. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 for APP fraud graph simulation, which gives a verb+resource. However, it never explains what the decision function actually computes (scoring? graph construction?) and does not distinguish itself from AML siblings like score_aml_typologies or detect_transaction_anomalies. The core purpose is present but buried under infrastructure boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance offered is 'Use synthetic or anonymised inputs only' plus compute-mode mechanics. There is no statement of when to use this tool versus alternatives, no prerequisites beyond chaining context, and no exclusions. The upstream/downstream artifact mentions imply chaining but do not tell the agent when this node 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.
simulate_consent_stressOpen Banking Consent Flow Stress SimulatorCRead-onlyIdempotentInspect
Open Banking Consent Flow Stress 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. Consumes upstream artifacts from: pnr-01-dora-ict-cascade-simulator. Output feeds: ptg-01-ap2-prompt-template-generator. Open at: https://ainumbers.co/chaingraph/sim-07-open-banking-consent-flow-stress.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_consent_stress").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 detail: deterministic execution, server-side vs browser delegation with a returned delegation URL, gpu:true always delegating, transient processing with no storage/logging/retention, and export of an execution_hash artifact for chain provenance. This is meaningful context beyond the structured safety hints, though it does not describe error 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is packed with boilerplate that does not help invocation: a full documentation URL, an 80-character FV-status file path, and a claim about offline receipt verification. These crowd out the actual purpose, which is buried behind the node-type preamble rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, 4-parameter, nested-object tool with no output schema, the description covers the chaining contract (upstream/downstream artifacts, execution_hash export) but leaves the core simulation inputs opaque by deferring policy_parameters field names to an external manifest, and the return shape is only loosely implied and delegated to describe_tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented in the schema and only implies the parent_hashes/parent_tool_ids chaining role via the upstream-artifact sentence, adding little beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 gives its chain position (consumes from pnr-01-dora-ict-cascade-simulator, feeds ptg-01), which helps differentiate it. However the substantive purpose — stress-testing an Open Banking consent flow — appears only in the title, and the body never says what the simulation evaluates or what it produces beyond a generic AP2 artifact, so the stated purpose is largely a restatement of the node kind.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It offers mode guidance (compute 'auto'/'browser'/'server') and a synthetic-input constraint, which is useful operational context. But there is no when-to-use guidance relative to alternatives such as simulate_ict_cascade or the other simulate_* siblings, and no statement of preconditions for choosing this simulator.
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-ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_frtb_es").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, non-open-world behavior. The description adds genuine context beyond them: deterministic execution, server-side vs browser delegation semantics for compute modes, transient/no-retention processing, and that it exports an AP2 artifact carrying an execution_hash. That is meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence merely repeats the title, and the text is padded with regulatory-deadline trivia (2028 vs EU 2029-30), a raw FV-status hash URL, a documentation URL and an instruction to call describe_tool for the output schema. These sentences do not help an agent select or invoke the tool, so the signal is buried in metadata noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and while the description does state that an AP2 artifact with execution_hash is exported, it delegates the actual return shape to describe_tool rather than describing it inline. Behavioral and chaining context is otherwise adequate for a 4-parameter compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates the compute modes without adding syntax or meaning, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (FRTB IMA Expected Shortfall) and identifies the tool as a pre-validator compute node, so an agent can tell it is a risk-parameter calculation rather than a checker. However it never plainly states what the validation actually produces, and it does not differentiate itself from nearby siblings such as compute_esrp_exposure or prevalidation_readiness_scorer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one real usage constraint ('Use synthetic or anonymised inputs only') and lists upstream/downstream artifacts, which implies a chaining context. But there is no guidance on when this tool is the right choice versus other ES or pre-validation tools, and no explicit exclusions.
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 SimulatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_gpi_tracker_lifecycle").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds genuine context beyond them: deterministic computation, transient processing with no storage/logging/retention, browser delegation URL behavior for gpu:true and compute:"browser", and an AP2 artifact with execution_hash for chain provenance. This is solid 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the tool identity, but a large fraction of the text is platform boilerplate and provenance noise (URL, fv-status hash path, receipt-offline disclaimer) that does not help an agent select or invoke the tool. The substantive compute-mode and transience sentences earn their place; the surrounding metadata does not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 policy_parameters object whose fields are explicitly deferred to a manifest, the description leaves the agent unable to know what inputs to supply or what a successful run yields. It does cover compute routing, chaining, and export behavior, but overall completeness for a parameterised compute node is only adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's compute-mode explanation largely duplicates it. The description defers the actual decision-function field names to 'the tool's manifest,' adding no 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name identify it as a SWIFT GPI tracker lifecycle simulator within the OpenChainGraph compliance_mandate framework, which is a clear verb+resource. However, the description never states what the simulation actually computes or returns, burying the purpose under platform boilerplate (compute binding, transience, artifact export). It does not distinguish itself from the many other simulate_* siblings beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives meaningful operational guidance: use synthetic/anonymised inputs only, and the compute:"auto"/"browser"/"server" semantics for when server-side vs browser delegation happens. It also names a downstream consumer (art-245-mt-mx-translation-fidelity-scorer). But it offers no when-to-use/when-not guidance relative to sibling tools, leaving selection to inference from the name.
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 SimulatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes beyond the annotations (which only declare readOnly/idempotent/non-destructive/closed-world) by disclosing that inputs are processed transiently and not stored, logged or retained, that execution is deterministic, that a browser delegation URL is returned in browser mode, and that an AP2 artifact with execution_hash is exported. These are real behavioral traits an agent needs, not restatements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the name and role, then proceeds through compute behavior, privacy, provenance and chain topology in reasonably tight order. The trailing FV-status sentence with a full hash is long, but it is a discrete verification pointer rather than prose bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, no-output-schema compute node with a nested policy_parameters object, the description covers execution locality, privacy handling, artifact export, and chain provenance. The only real gap is that the actual decision-function fields live in an external manifest, which the description acknowledges by pointing there.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented. The description adds chaining context ('consumes upstream artifacts from art-09...') and the parent_hashes-to-AP2 chain linkage, but does not add syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (DORA ICT cascade simulation) and identifies itself as a deterministic OpenChainGraph compute node with the infrastructure_mandate role, then names the upstream artifact it consumes and the two downstream tools it feeds. It is distinguishable from siblings like run_dora_readiness_diagnostic or simulate_consent_stress, though what the cascade actually computes is left to the manifest 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Offers concrete routing guidance for the compute mode (server vs browser vs gpu:true delegation) and warns to use synthetic/anonymised inputs only. It does not, however, say when an agent should prefer this tool over a sibling diagnostic or what preconditions must hold before chaining.
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 SimulatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_output_floor").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/non-destructive, so the safety bar is pre-cleared; the description adds real behavioral value beyond them: inputs are processed transiently and not stored/logged, only synthetic or anonymised inputs should be used, and an AP2 artifact with execution_hash is exported for provenance. It also explains the browser-delegation behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense block mixing runtime mechanics, a privacy notice, a raw URL, a full FV-status hash URL, and a self-referential 'Output schema: call describe_tool(...)' line. The actual function is never front-loaded, and large portions (the embedded URLs/hashes) do not help 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.
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 no output schema, the description covers compute modes, privacy handling, and the returned AP2 artifact, but omits what the simulation evaluates and what policy_parameters fields mean (deferred to 'the tool's manifest'). It is minimally viable but leaves the core decision-function semantics unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 and parent_tool_ids chaining, and policy_parameters. The description's compute-mode summary duplicates the schema's enum description rather than adding syntax or constraints beyond it. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names a specific resource ('Basel Output-Floor Phase-In Simulator') and the description labels it an 'OpenChainGraph compute node (compliance_mandate)', but it never states what the simulation actually computes or decides. The bulk of the text describes compute plumbing (server vs browser delegation) rather than the tool's function, so an agent learns more about the runtime 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs. alternative guidance, despite many simulate_* and compute_* siblings (e.g., simulate_app_fraud_graph, compute_rwa_scenarios). The only usage-like content is the compute-mode selection, which is a parameter behavior, not a routing rule 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.
simulate_spend_policyAgent Spend-Policy SimulatorBRead-onlyIdempotentInspect
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, art-32-a2a-agent-card-trust-chain-validator. Output feeds: art-01-ap2-mandate-chain-validator, art-04-agent-identity-attestation-checker, 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_spend_policy").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavioral context beyond that: deterministic execution, transient processing with no storage/logging/retention, kernel/server-side vs browser delegation semantics, and the emitted AP2 artifact with execution_hash. That is meaningful operational disclosure, though auth requirements and failure behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is reasonable, but the description then front-loads or mixes in chain-provenance lists, a URL, and a lengthy FV-status receipt paragraph ('a snapshot, not a subscription; this receipt verifies offline...') that does nothing to help an agent select or invoke the tool. The core purpose is buried under governance metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, nested-parameter tool with no output schema, the description does cover upstream/downstream artifact chaining, retention semantics, and compute delegation, and it defers return-value details to describe_tool. The missing piece is what the simulation evaluates and what keys policy_parameters expects, which is central to calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 thoroughly; the description largely repeats the compute semantics. It adds nothing for policy_parameters other than pointing at 'the tool's manifest', leaving the decision-function fields opaque in both description and schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first line identify it as the spend-policy simulator compute node, and the description says it is a deterministic OpenChainGraph compute node producing an AP2 artifact. However, it never states what the simulation actually decides (e.g., whether a payment conforms to a spend policy), and it does not differentiate itself from the near-identically named sibling simulate_agent_spend_policy.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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) and imposes a real usage constraint ('Use synthetic or anonymised inputs only'), which is genuinely useful invocation guidance. But it gives no when-to-use guidance relative to alternatives, and the sibling simulate_agent_spend_policy is never mentioned as a routing option.
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 SimulatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_stablecoin_reserve").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context: compute mode resolution (auto vs server vs browser, gpu:true always delegating), transient non-retention of inputs, and the AP2 artifact with execution_hash that is exported. That is meaningful disclosure beyond the annotations, though it says nothing about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The block is a dense run-on of infrastructure plumbing, URLs, a full FV-status hash, and artifact IDs, much of which is boilerplate rather than decision-useful content. The purpose sentence is front-loaded, but the volume of tangential detail crowds out the information an agent actually needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chain-node simulation tool the description does cover compute routing, provenance chaining, artifact export, and upstream/downstream wiring. But with a nested policy_parameters object whose fields are entirely undisclosed and no output schema, an agent cannot know what reserve inputs to supply or what the simulation returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and parent_tool_ids are already fully documented in the schema and the description merely restates the compute-mode semantics. Critically, policy_parameters — the actual simulation inputs — is deferred to 'the tool's manifest for field names,' leaving the real parameter surface opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and action: a MiCA stablecoin reserve stress simulator implemented as an OpenChainGraph compute node under the liquidity_mandate. That is clearly distinguishable from read/check siblings, though the one-line title carries most of the work and the rest of the text drifts into infrastructure detail rather than sharpening the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states a regulatory trigger (MiCA Title III/IV in force from 2024-06-30, Article 36 reserve requirements) and names upstream artifacts it consumes and downstream tools it feeds, which implies when it belongs in a chain. However, it never says when to use this instead of the close sibling recompute_stablecoin_reserve_3source or run_liquidity_stress_test, and gives no explicit when-not guidance.
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)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_var_monte_carlo").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic execution, server-side vs browser delegation semantics, transient non-stored processing, AP2 artifact export with execution_hash, and an offline-verifiable FV-status receipt. These are genuinely useful and not derivable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The name/title is front-loaded, which is good, but the body is a dense run-on of boilerplate (kernel registration, Cloudflare Workers, FV-status URL and hash) that dilutes the substantive content. Several clauses could be dropped without loss for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not describe what a VaR result looks like. More critically, the main input surface — policy_parameters — is left entirely unspecified (no confidence level, horizon, simulation count, or portfolio shape), which is a serious gap for a simulation tool. It also points to describe_tool for an "output schema" that is not actually an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 mirrors the schema text for compute, and for policy_parameters it defers to "the tool's manifest for field names" rather than naming any fields, so it adds little field-level meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (portfolio VaR) and method (Monte Carlo, integer PRNG) and classifies it as an OpenChainGraph risk_control compute node, but the bulk of the text is operational boilerplate that restates the title rather than explaining what the computation actually produces. It never distinguishes this from nearby siblings such as compute_portfolio_var, compute_var_backtest_traffic_light, or compute_stress_test_scenarios.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is an explicit input-safety rule ("Use synthetic or anonymised inputs only") and a routing rule for compute modes, plus downstream consumers (qfa-02, qfa-03). However, it gives no guidance on when to choose this tool over the other VaR/stress siblings, which is the primary selection decision an agent faces.
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 AnalyserCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_vop_matching").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, but the description goes well beyond them: transient processing with no storage/logging/retention, server vs browser delegation semantics, gpu:true routing, and AP2 artifact export with execution_hash for provenance. This is meaningful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a dense block that repeats 'OpenChainGraph compute node', front-loads boilerplate, and embeds a 64-character hash URL plus a 'snapshot, not a subscription' caveat that is not agent-actionable. The compute/chaining logic is 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter node with no output schema it covers data handling, compute binding, provenance chaining, and points to describe_tool for the output shape. What is missing is the substantive core: what the match-rate analysis evaluates and how policy_parameters shape it, so an agent knows whether it has the right tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reinforces compute modes and the chain.parent_hashes export behavior, but adds little beyond the schema, and for the open-ended policy_parameters it only defers to 'the tool's manifest for field names' rather than supplying semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The definition names a specific resource (VoP batch match-rate analyser) and calls it a 'simulate' compute node, but it never explains what the tool actually computes or what 'VoP matching' consumes and produces analytically. It is distinguishable from siblings by name only; an agent cannot tell from the text what the decision function does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only genuine usage guidance is 'Use synthetic or anonymised inputs only' and the compute-mode default explanation, which is really parameter behavior rather than tool selection guidance. No condition is given for choosing this over related tools like run_vop_readiness_diagnostic or build_vop_session_receipt.
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 SimulatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("simulate_x402_flow").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value: transient processing with no storage, logging, or retention; a requirement to use synthetic/anonymised inputs only; deterministic execution; browser delegation behavior for gpu:true nodes; and an AP2 artifact export carrying execution_hash. It omits any latency or failure-mode details, but the data-handling and delegation disclosures are concrete and non-obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with provenance boilerplate, a long FV-status hash URL, and the aside 'a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.' These consume prime real estate before anything tells an agent what the tool does, so the structure is not front-loaded on the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, a nested open object, and no output schema, the description should say more about what a simulation returns; it instead defers with 'call describe_tool(...)'. The manifest pointer for policy_parameters and the upstream/downstream artifact chain partially cover the gap, but the result shape and the linter's pass/fail semantics remain undescribed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 repetition adds nothing new. Its one contribution is pointing to the tool manifest for the opaque policy_parameters field names, which is mild compensation. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a restated title ('x402 Header Decoder, Payload Linter & 402 Flow Simulator') and labels itself as an 'OpenChainGraph compute node (compliance_control)' without ever explaining what simulating an x402 flow actually produces or how it differs from siblings like decode_x402_payment, lint_x402_v2_migration, or model_x402_settlement. The upstream/downstream artifact lists (art-22, art-25 → art-03, art-18) do give some positional differentiation within the chain, which lifts it above pure tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 adjacent x402 tools, nor any trigger conditions. The only operational guidance is the internal compute-mode mechanic (auto/server/browser), which is invocation mechanics, 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.
size_ccp_default_fund_cover2CCP Default Fund Cover-2 SizingBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("size_ccp_default_fund_cover2").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive context beyond them: transient processing with no storage/logging/retention, deterministic computation, AP2 artifact export with execution_hash for provenance, and browser-delegation behavior. It does not describe return format 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is front-loaded with purpose and then mechanics, but it is a single dense run-on paragraph that packs in a long documentation URL, a 64-character FV-status hash, and a describe_tool pointer, some of which is boilerplate repeated across nodes. Efficient in places, padded in others.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object compute node with no output schema, the description usefully covers compute modes, chaining inputs, artifact export and points to describe_tool for the output schema. Yet the actual computation result and the policy_parameters field names remain undefined, deferred to a manifest the agent cannot see from this text.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description. For the opaque policy_parameters object it defers to 'the tool's manifest for field names' rather than adding meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence restates the title and adds only the classification 'OpenChainGraph compute node (risk_parameter)', so the agent learns it is a compute node but not what the Cover-2 sizing calculation actually produces. It names a specific domain resource (CCP default fund cover-2), but there is no sibling differentiation against tools like recompute_ccp_default_waterfall. Purpose is inferable but thin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real operational conditions ('compute:auto' server-side vs 'compute:browser' delegation, gpu:true always delegates, use synthetic inputs only, consumes upstream artifacts from qfa-03-stress-test-engine). However it never states when to choose this tool over an alternative or what preconditions make it applicable, leaving the when/when-not inference to the caller.
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 StressBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("stress_test_ap_redemption_path").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context beyond them: compute-mode defaults and the fact that gpu:true nodes always delegate to the browser, transient non-storage of inputs, and export of an AP2 artifact with execution_hash for chain provenance. This is meaningful disclosure for a compute node, though it omits determinism/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, but the body is cluttered with a raw documentation URL, a long FV-status SHA-256 path, and repeated 'deterministic compute node' phrasing that dilutes signal. The final pointer to describe_tool for the output schema is useful, but overall the description is longer than its informational content warrants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object compute node with no output schema, the description covers execution modes, data-handling, and provenance export, and defers output structure to describe_tool and field names to a manifest. However, it never states what the stress test actually computes or returns, leaving the agent without the substantive result semantics expected of a financial compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 repeats the compute:auto/server/browser behavior rather than adding new semantics, and only gestures at policy_parameters via 'see 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title nearly verbatim ('AP Concentration + Redemption-Path Stress') and labels it an 'OpenChainGraph compute node (collateral_mandate)', so the agent knows it is a stress/compute tool but gets no elaboration of what is actually being stressed (which exposures, which redemption path). It does not distinguish itself from dense siblings like compute_stress_test_scenarios, run_liquidity_stress_test, or compute_stock_token_collateral_haircut. Purpose is identifiable but vague 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.
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 among the many stress/compute siblings. The only conditional guidance is about compute mode mechanics (auto/server/browser) and 'use synthetic or anonymised inputs only', which is operational 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.
suggest_tool_ideaSuggest a new tool, node, or workflowARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| who | No | The persona or buyer who would use this (e.g. "a compliance officer at a CASP"). | |
| kind | No | What kind of suggestion this is (default "New tool"). | |
| title | No | Short issue title (the "[Suggestion] " prefix is added automatically). | |
| domain | No | The regulation or standard it serves (e.g. "MiCA", "ISO 20022", "EMIR Refit"). | |
| why_now | No | The driver, deadline, or demand behind the suggestion. | |
| computes | Yes | What 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
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.
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.
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.
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.
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.
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 recipesARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| recipe_id | No | A recipe id from the no-arg index (e.g. "aml-programme"). Omit for the compact index; pass exactly ONE id per call. |
TDQS
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.
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.
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.
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.
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.
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 SweepCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("sweep_docket_deadlines").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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; the description nonetheless adds real behavioral context beyond them — server-side vs browser execution, transient non-retention of inputs, delegation URL behavior for gpu:true, and the AP2 artifact with execution_hash for provenance. It does not state what is produced for the docket deadline case specifically.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is boilerplate-heavy and poorly front-loaded: the actual subject never appears, while a 64-character FV-status hash and a raw URL are inlined. Much of the content is infra description that likely belongs in shared documentation rather than a per-tool definition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers to describe_tool for it, which is acceptable, but for a 4-param nested-object compute tool the definition still omits any statement of what the computation returns or what the decision function evaluates. An agent cannot tell what 'deadline sweep' produces or why it would pick this over the other compliance nodes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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-schema, so baseline 3 applies. The description's compute-mode text duplicates the schema's own 'compute' description and adds nothing about 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title ('Docket Deadline Sweep') and then spends its length on generic OpenChainGraph compute-node boilerplate (compute modes, kernel registration, AP2 artifact export). It never states what a docket deadline sweep actually does in domain terms — no verb+resource about deadlines, filings, or deadlines computation. The only purpose-like content is the tag 'compliance_control'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling sweep/validate/assess tools, nor any prerequisites or exclusions. The only usage instruction is a data-handling constraint ('use synthetic or anonymised inputs only'), which is about 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.
sweep_fedwire_addressesFedwire Payment-File Address SweepCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("sweep_fedwire_addresses").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them: 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 chain provenance. These are real operational traits the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is padded with low-value infrastructure text: a hash-pinned FV-status URL, a prose explanation that the receipt verifies offline, and a pointer to describe_tool for the output schema. The functional purpose is buried behind boilerplate that appears to be shared across the whole tool family, so an agent must read past the noise to find anything task-relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with a nested free-form policy_parameters object and no output schema, the description covers compute modes, retention, and provenance export reasonably well. However, it leaves the agent unable to know what decision-function inputs to supply (deferred to a manifest) and provides no return-value summary, so it is only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description rather than extending it. Critically, the free-form policy_parameters fields are deferred to an external manifest ('See the tool's manifest for field names'), which the description does not resolve. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The body largely restates the name/title ('Fedwire Payment-File Address Sweep: OpenChainGraph compute node') and then spends its length on execution-infrastructure prose. It never explains in plain terms what a 'sweep' of Fedwire payment-file addresses actually does, nor how it differs from the sibling lint_fedwire_structured_address it consumes artifacts from. The compliance_mandate tag and upstream-artifact link are the only functional hints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the many neighboring address/Fedwire/compliance tools. The compute-mode advice ('auto' vs 'browser') is parameter selection, not tool selection, and the upstream-artifact mention does not say when a sweep is warranted. An agent gets 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.
test_asc280_reportable_segmentASC 280 Reportable Segment TesterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("test_asc280_reportable_segment").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive/closed-world, so the bar is lower, yet the description adds genuinely useful behavior: compute:'auto' resolves server-side for gpu:false nodes with a registered kernel, compute:'browser' returns a delegation URL, gpu:true always delegates, inputs are transient and never retained, and an AP2 artifact with execution_hash is exported. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats 'OpenChainGraph compute node' twice before anything tool-specific appears, and the URL/FV-status hash dump consumes substantial space. The actual purpose of an ASC 280 segment test is never front-loaded, so the structure serves provenance plumbing rather than tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 free-form nested policy_parameters object and no output schema, the description never explains the decision inputs or outcome. It explicitly redirects to describe_tool for the output schema, forcing an extra round trip, and leaves the core ASC 280 semantics ('what makes a segment reportable') entirely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum semantics and does not clarify what policy_parameters fields the decision function expects, deferring instead 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title and then spends its body on generic OpenChainGraph infrastructure (compute modes, provenance, FV-status) rather than stating what the ASC 280 segment test actually evaluates. An agent cannot distinguish this from siblings like classify_asc280-style tools or other 'test_*' compliance nodes beyond the bare domain label. It is essentially a tautology with boilerplate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the data-handling caveat 'Use synthetic or anonymised inputs only', which is an input constraint, not usage guidance for selecting this tool over any of the ~400 siblings.
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)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("test_bifsg_bias_thresholds").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/non-destructive, the description still adds substantial behavioral context: compute:'auto' runs server-side on Cloudflare Workers, compute:'browser' returns a delegation URL instead of a result, gpu:true nodes always delegate, and inputs are processed transiently with no storage, logging, or retention. It also discloses that an AP2 artifact with execution_hash is exported and that the FV-status receipt verifies offline. This is materially more than the annotations convey, though it never states determinism guarantees for the actual test output or what happens on kernel failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sentences are ordered sensibly – identity, compute semantics, data handling, provenance, downstream consumer – and the title is front-loaded. However, it carries reusable boilerplate (the full FV-status hash URL and the 'snapshot, not a subscription' aside) that is duplicated verbatim across sibling nodes and does not earn its place for an agent selecting this specific tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter node with a nested policy_parameters object and no output schema, the description covers the compute execution model, data-retention posture, artifact export, and the downstream consumer (art-240-assess-naic-ais-program-readiness) adequately. It correctly redirects to describe_tool for the output schema. The remaining gap is that it never says what the test computes or what a passing/failing threshold result means, which an agent evaluating bias compliance arguably needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 baseline is 3. The description's compute-mode prose largely duplicates the schema, and the chaining parameters (parent_hashes/parent_tool_ids) are only obliquely gestured at via 'exports an AP2 artifact with execution_hash for chain provenance'. policy_parameters field names are explicitly deferred to the manifest, so the description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence restates the title ('BIFSG Insurance Proxy Bias Threshold Test (Colorado SB 21-169)') and then labels it an 'OpenChainGraph compute node (compliance_mandate)', which is platform metadata rather than a functional explanation. The name itself is descriptive enough that an agent can infer it tests bias thresholds under a Colorado insurance statute, but the description adds no verb/resource detail beyond the title and does not distinguish it from siblings like assess_naic_ais_program_readiness or lint_insurance_evidence_freshness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-adjacent instruction is 'Use synthetic or anonymised inputs only', which is an input constraint, not a when-to-use rule. 'Output feeds: art-240-assess-naic-ais-program-readiness' hints at chain position but states no condition for selecting this tool over alternatives, and no exclusions or prerequisites are given.
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 TestBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("test_hedge_effectiveness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them: deterministic execution, transient processing ('not stored, logged, or retained'), compute routing (server vs browser delegation), and AP2 artifact export with execution_hash. It does not describe latency or failure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with name and node type, which is good, but the body is padded with provenance/receipt boilerplate (FV-status hash path, HTML URL, snapshot disclaimers) that dilutes the operational content. Some sentences earn their place; several do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chained compute node with no output schema but high schema coverage and rich annotations, the description supplies compute mode behavior, retention policy, artifact/chaining output, and a downstream consumer. It correctly points to describe_tool for the output schema. Mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource and operation clearly: an OpenChainGraph compute node that runs a deterministic hedge effectiveness test, with a downstream consumer (art-263-score-cash-forecast-accuracy) named. It does not explicitly contrast itself with sibling test_*/compute_* tools, so it falls short of a 5, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only actual usage guidance is 'Use synthetic or anonymised inputs only.' There is no statement of when to pick this tool over alternatives, no prerequisites, and no exclusions. The compute-mode discussion is behavioral/schema, not when-to-use routing.
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 TestCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("test_hoepa_high_cost").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context beyond them: inputs are processed transiently and never stored or logged, synthetic/anonymised inputs are required, and an AP2 artifact with execution_hash is exported for chain provenance. That is real behavioral disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool name but then spends most of its length on cross-tool boilerplate. The compute-mode explanation duplicates the schema description almost verbatim, and the FV-status receipt sentence is verbose relative to its value, 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.
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 results, yet it only says an AP2 artifact is exported. It never states what the HOEPA high-cost determination returns, what policy_parameters fields are required, or how the decision is surfaced, leaving an agent unable to call this compliance test correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates the schema's compute description, and it explicitly defers policy_parameters field names to 'the tool's manifest' rather than adding meaning, so it sits at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (HOEPA high-cost mortgage trigger test) and tag it as a compliance_mandate compute node, so the domain is identifiable. However, the body describes execution infrastructure (compute modes, artifact export) rather than what the test actually evaluates, so an agent learns what kind of thing it is but not what 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.
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 many sibling 'check_/compute_/test_' tools, nor any prerequisites or exclusions. The compute-mode paragraph is parameter behavior, not usage guidance. The upstream artifact reference hints at ordering but does not say when to invoke it.
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 TestBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), but the description adds real behavioral context: transient processing with no storage/logging/retention, the compute:auto/server/browser modes and browser delegation for gpu:true nodes, and the export of an AP2 artifact carrying an execution_hash. That is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The identity and compute-mode rules are front-loaded, but the bulk of the text is ecosystem boilerplate (kernel registration, transient processing, FV-status snapshot disclaimer) that is largely repeated across sibling compute nodes and dilutes the tool-specific content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter compute node with no output schema, the description does convey the execution model, provenance export and upstream dependency (art-220-reg-z-threshold-lookup). However, it never explains the actual HPML/escrow decision logic or what the response contains, leaving a real gap for a compliance test.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds nothing about parameter syntax and even defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title ('HPML Definition and Escrow Requirement Test') and then pivots to infrastructure boilerplate about the OpenChainGraph compute node, without stating what the test actually computes (whether a loan is a higher-priced mortgage loan and whether escrow is required). The verb/resource is implied by the name but never clarified, and it is not distinguished from close siblings like test_hoepa_high_cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 an input-safety constraint rather than routing guidance. There is no statement of when to reach for this tool versus test_hoepa_high_cost or the other loan-disclosure tests, and no exclusions.
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 TesterCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("test_reg_w_affiliate_transactions").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive/closed-world, and the description adds genuinely useful context beyond them: transient processing with no storage or logging, the 'synthetic or anonymised inputs only' constraint, browser-delegation behaviour, and export of an AP2 artifact carrying execution_hash. Only the decision semantics and failure modes remain undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition leads with redundant node taxonomy and then spends several sentences on provenance boilerplate ('a snapshot, not a subscription; this receipt verifies offline...') and an FV-status URL that do not help an agent invoke the tool. Useful behaviour 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.
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 no output schema the description adequately covers execution and data-handling behaviour, but it never says what the decision function evaluates or what policy_parameters are expected, deferring to an unstated manifest. An agent knows how it runs but not what it computes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 compute defaults without adding syntax or field-level meaning, and says only 'see the tool's manifest for field names' for the policy object, which points elsewhere rather than clarifying.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 labelling the tool 'OpenChainGraph compute node (compliance_control)', which is infrastructure taxonomy rather than a statement of what Reg W affiliate transaction testing actually does. No verb+resource explanation of the decision being computed is given, so the agent cannot tell the tool's function from the description alone; the name carries the load.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The compute-mode discussion explains execution locality, not when to select this tool versus siblings like test_hoepa_high_cost or other Reg W / compliance-test tools. There are no when-to-use, when-not-to-use, or alternative-tool statements anywhere in the description.
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 TrackerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("track_fatca_crs_ro_remediation_closure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic server-side computation, compute:'browser' returning a delegation URL, gpu:true always delegating, transient non-retained processing, and an AP2 artifact carrying execution_hash for provenance. This is real execution semantics, though it is generic node 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode explanation is duplicated almost verbatim between description and schema, and the FV-status URL/hash block is noise that consumes attention. It is not rambling, but a meaningful fraction 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.
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, the definition leaves the agent unable to know what inputs to supply or what the export contains; it defers everything to describe_tool and an external URL. For a 4-parameter node with nested objects, that is an inadequate description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 are fully documented in the schema and the description merely paraphrases the compute enum. The critical gap is policy_parameters, whose field names are deferred to an external 'manifest' and are undocumented in both schema and description, so the description does not compensate for the real ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('FATCA/CRS RO Remediation Closure Tracker: OpenChainGraph compute node') and then spends nearly all its text on platform boilerplate (compute modes, transient processing, FV-status URL) without ever saying what the tool actually computes or what a 'remediation closure' decision contains. It also never distinguishes itself from close siblings like register_mra_remediation_closure or check_fatca_crs_submission_conformance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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', which is an input-hygiene rule rather than when-to-use guidance. Nothing states when an agent should pick this tool over the many other FATCA/CRS or remediation-closure tools, nor what prerequisites or upstream artifacts are needed.
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 TrackerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("track_globe_transition_deferred_tax").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 safety is covered. The description adds genuinely useful context beyond that: transient input processing (no storage/logging/retention), a synthetic-inputs-only constraint, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded correctly, but the body is padded with infrastructure boilerplate (compute binding, privacy assertions, a raw FV-status hash URL, a describe_tool pointer) that is generic across the node family rather than specific to this tool. The single operative phrase about the tool's function is buried under this repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the return-shape burden, and it partly does by naming the AP2 artifact with execution_hash and pointing to describe_tool. However, it never explains what policy_parameters fields exist (deferring to 'the tool's manifest'), which for a 4-param compute node leaves 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.
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 modes that the schema enum already covers, adding no format or ordering detail beyond it. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the domain ('GloBE Article 9.1 Transition Deferred Tax Tracker') and classifies the node type ('OpenChainGraph compute node (compliance_mandate)'), but never states in plain terms what the tool computes or returns. It does not differentiate itself from the many GloBE siblings (compute_globe_jurisdictional_etr, compute_globe_topup_tax, evaluate_globe_de_minimis_exclusion), leaving an agent to 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.
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 GloBE siblings, nor any prerequisites or exclusions tied to the tool's actual function. The compute-mode paragraph explains execution mechanics, not tool selection, so 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.
track_ifrs17_loss_component_rollforwardIFRS 17 Loss Component Roll-Forward TrackerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("track_ifrs17_loss_component_rollforward").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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:'browser' returns a delegation URL instead of a result, gpu:true nodes always delegate, inputs are transient/not retained, synthetic inputs are required, and an AP2 artifact with execution_hash is exported. The compute-mode divergence materially affects how an agent invokes and interprets 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense block of infrastructure boilerplate (determinism claims, Cloudflare Workers, retention policy, FV-status URL and a 64-char hash) that pushes the actual purpose into the background. Multiple sentences are generic to all nodes rather than earning their place for this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description defers return-value detail to describe_tool, and it does cover compute modes, chaining inputs, and provenance export. But it omits what the loss-component roll-forward actually produces (the domain payload), leaving an agent without a clear picture of the tool's substantive output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 meaning beyond the schema (it describes compute modes, which the schema already explains). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name indicate an IFRS 17 loss component roll-forward tracker, and the description labels it a 'compliance_mandate' compute node, so the general domain is inferable. However, the description never states what the tool actually computes or returns for the roll-forward; it is dominated by generic OpenChainGraph infrastructure boilerplate that obscures the specific function. No sibling differentiation beyond the chaining reference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 comparison to alternatives such as validate_ifrs17_csm_rollforward or reconcile_sii_ifrs17. The only usable context is the 'consumes upstream artifacts from art-178-ifrs17-csm-rollforward-validator' hint, which implies a prerequisite but is not framed as usage guidance.
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 CheckerBRead-onlyIdempotentInspect
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). Output schema: call describe_tool("validate_a2a_agent_card").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds helpful context that it runs client-side with zero PII and zero network, and it renders a widget with inputs via the AIN Bridge. It also points to describe_tool for output schema. This goes beyond annotations but does not fully describe validation failure behavior or output details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, effectively front-loading the core validation purpose in the first sentence. The second sentence adds execution details and a pointer to describe_tool, which is useful but slightly meta. No unnecessary repetition or filler, making it concise and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one generic parameter and no output schema, the description covers core functionality and execution context, and it directs the agent to describe_tool for output schema. However, it does not specify the expected structure of the 'inputs' map beyond a generic mapping, nor does it detail what validation outcomes are returned. This is adequate but leaves some operational corners unexplored.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema's single parameter 'inputs' is fully described as a map of tool input element IDs to values, applied via AIN Bridge prefill. The tool description reinforces this by stating inputs are applied via AIN Bridge. Since schema coverage is 100%, the baseline is 3, and the description adds no significant new meaning to the parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates an A2A agent-card.json against v1.0 shape, checks signatures, and confirms extension declarations – a specific verb, resource, and scope. However, it does not explicitly differentiate itself from closely named siblings like verify_a2a_agent_card or validate_signature_agent_card, leaving some ambiguity about when to prefer this tool over them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool does but provides no guidance on when to use it versus alternative validation tools. It mentions client-side execution and zero network, but does not state any exclusions, prerequisites, or conditions that would direct an agent to choose this tool over others. Sibling tools with overlapping validation purposes make this gap notable.
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 ValidatorCRead-onlyIdempotentInspect
A2A Agent-Card Trust-Chain Validator: OpenChainGraph compute node (compliance_mandate). Regulatory deadline: 2026-08 (A2A at Linux Foundation (150+ orgs); EU AI Act dates re-set by the Digital Omnibus on AI, Regulation (EU) 2026/1744 (in force 27 Jul 2026): Chapter III high-risk regime (Sections 1-3) applies 2 Dec 2027 for Art. 6(2)/Annex III systems and 2 Aug 2028 for Art. 6(1)/Annex I systems; Art. 50(2) synthetic-content marking for systems placed on the market before 2 Aug 2026 applies by 2 Dec 2026 (amended Art. 111(4)); new Art. 5(1) points (ba)/(bb) prohibitions likewise apply from 2 Dec 2026. These push 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. Consumes upstream artifacts from: art-04-agent-identity-attestation-checker. 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_a2a_trust_chain").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, non-destructive, closed-world), and the description still adds real behavioral value: inputs are processed transiently and not stored/logged/retained, compute:'auto' vs 'browser' changes whether execution happens server-side or returns a browser delegation URL, gpu:true always delegates, and an AP2 artifact with execution_hash is exported. These are concrete execution 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with a wall of regulatory-deadline text (EU AI Act amendment dates, Art. 5(1) prohibitions) that is largely irrelevant to selecting or invoking this tool, and includes a URL plus a full FV-status hash receipt. The genuinely useful operational content (compute modes, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param tool with nested objects and no output schema, the definition omits what a valid vs invalid trust chain looks like, what failure modes or error outputs are produced, and how parent_hashes/parent_tool_ids are used in validation. With no output schema, the description should carry return-value meaning, but it only mentions that an artifact is exported. The policy_parameters contract is deferred to an external manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 nothing for the chaining parameters, and explicitly punts on policy_parameters fields ('See the tool's manifest for field names'). 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never says what validating an A2A trust chain actually does — it asserts the title, dumps regulatory deadline prose, and describes compute plumbing, but the verb+resource is only restated from the title. It also fails to distinguish itself from close siblings like validate_a2a_agent_card, verify_a2a_agent_card, and validate_signature_agent_card. An agent cannot tell from the text what a 'trust chain validation' verifies or returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives pipeline context (consumes art-04-agent-identity-attestation-checker, feeds art-04/art-02/ptg-01) and a caution to use synthetic inputs, which is useful ambient guidance. However, there is no when-to-use/when-not-to-use statement and no routing between this tool and the several A2A/agent-card validation siblings. Chaining advice is implied, not explicit.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_a2a_x402_mandate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, not openWorld), yet the description adds meaningful behavior: transient processing with no storage/logging/retention, a 'synthetic or anonymised inputs only' constraint, deterministic computation, and the execution_hash-bearing AP2 export. This is real context beyond the structured hints, though return format and any auth/binding details are still thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loading is decent, but the text repeats 'OpenChainGraph compute node' twice and spends a full sentence on an FV-status receipt with a 64-character hash and an offline-verification caveat that does not help tool selection. Functional content is interleaved with provenance/webpage noise, diluting scannability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and while the description says it 'exports an AP2 artifact with execution_hash' and defers schema detail to describe_tool, it never describes the response shape or failure behavior. For a tool whose whole output is a computed artifact, an agent is left inferring the return contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 paragraph largely repeats the schema's enum semantics rather than adding new meaning (e.g. it does not clarify expected field names in policy_parameters beyond 'see the manifest'). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (validating an A2A x402 extension mandate) and the description positions it as a deterministic compute node that exports an AP2 artifact. It is identifiable against siblings like validate_a2a_trust_chain or validate_ap2_mandate_chain by scope, but the description never explicitly contrasts itself with them, and the core purpose is buried under infrastructure metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 vs sibling validators. Usage is only implied through the pipeline context ('consumes upstream artifacts from art-03-x402-settlement-modeler', 'output feeds: ...'), which tells an agent where it sits in a chain but not when to pick 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_acp_checkoutACP Checkout Conformance ValidatorCRead-onlyIdempotentInspect
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, art-564-ucp-checkout-payload-lint. Output feeds: art-01-ap2-mandate-chain-validator, art-03-x402-settlement-modeler, 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_acp_checkout").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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/retention, the requirement to use synthetic inputs only, the server-vs-browser delegation semantics for gpu:true nodes, and the emission of an AP2 artifact with execution_hash for provenance. The only gap is that the actual validation behavior/outcome is never characterized.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The actual purpose is buried under boilerplate: a URL, an FV-status receipt path with a 64-char hash, artifact ID lists, and a describe_tool pointer. These metadata dumps crowd out the one or two sentences that would tell an agent what the tool does, making it poorly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supply execution, privacy, and chaining context, and points to describe_tool for the output shape. But for a tool whose core value is a conformance verdict, it never says what is validated or what a result means, and defers policy_parameters entirely to an unnamed manifest.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 corroborates the compute binding and the upstream-artifact chaining but adds no syntax or field-level detail beyond what the schema states. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line identify it as the 'ACP Checkout Conformance Validator' and a payment_mandate compute node, so the resource is clear. However, the body never states in prose what conformance criteria it actually checks or what a call accomplishes, so an agent must infer purpose from the name alone. It does not distinguish itself from siblings like validate_agent_commerce_conformance or lint_ucp_checkout_payload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisite guidance is given. The compute-mode discussion is about how the call executes, not about when to select this validator over the many adjacent conformance/lint tools in the sibling list. Usage context is entirely left to inference.
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 NoticeCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_adverse_action_notice").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 still adds real behavioral context: deterministic execution, transient processing with no storage/logging/retention, server-vs-browser compute routing, gpu:true always delegating, and export of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single functional sentence is buried under infrastructure boilerplate: a URL, a 64-hex FV-status path, an explanation of receipt snapshots, and a redundant restatement of compute modes. Large portions 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.
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 validation returns, but it only mentions an exported AP2 artifact and execution_hash, not the validation verdict or failure detail. The key input, policy_parameters, is an unconstrained object whose fields are deferred to an external manifest, leaving the agent unable to construct a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 (already in the schema) and adds nothing about the free-form policy_parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name supplies a clear verb+resource (validate an adverse action notice) and the description adds pipeline context by naming the upstream artifact (art-228-build-adverse-action-notice). However, the body never states what the validation actually checks or what makes a notice pass or fail, so an agent learns nothing about the operation 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.
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 the sibling build_adverse_action_notice versus this validator. The only operational guidance is a data-handling constraint ('use synthetic or anonymised inputs only'), which is 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_agent_audit_trailAgent Audit Trail Conformance Validator (IETF AAT)ARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_agent_audit_trail").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the safety annotations (readOnly, idempotent, non-destructive) the description adds substantive behavior: inputs are processed transiently and not stored/logged/retained, an AP2 artifact with execution_hash is exported, and the node consumes a specific upstream artifact. The compute-mode side effects (browser delegation URL) are 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and compute-binding rules are front-loaded, but the entry carries boilerplate – the full FV-status hash URL and the 'call describe_tool(...)' deferral – that pads the definition without helping an agent decide to invoke it. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param, no-output-schema tool the description is reasonably complete: it covers the chaining prerequisite, privacy constraints, compute delegation, and the exported artifact shape. What it validates in the audit trail itself and the decision-function outputs remain unspecified, but the essentials for invocation are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already fully documented. The description mostly restates the compute-mode semantics already in the schema and says nothing new about policy_parameters or the parent_hashes/parent_tool_ids pairing, so it adds little beyond structured data. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: validating agent audit trail conformance against the IETF AAT standard, tied to a named compute node type (compliance_mandate) and spec art-237. It is largely distinguishable from siblings, though it never explicitly contrasts with the very close 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real operating context – chain it after art-236-build-ai-decision-log-record and use synthetic/anonymised inputs only – which implies the usage scenario. However, it never states when NOT to use this tool or names an alternative (e.g. validate_audit_trail_completeness) for overlapping cases.
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 ValidatorBRead-onlyIdempotentInspect
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-03-x402-settlement-modeler, art-12-acp-checkout-conformance-validator, art-62-ap2-payment-receipt-verifier. 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_agent_commerce_conformance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/non-destructive, and the description adds real operational context: transient, non-retained input handling, the 'synthetic or anonymised inputs only' constraint, compute-mode routing (server kernel vs browser delegation URL, gpu:true always delegating), and the AP2 artifact with execution_hash it exports. This goes meaningfully beyond the annotations, though it omits what the conformance decision 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with redundant phrasing ('compute node (payment_mandate). Deterministic OpenChainGraph compute node.'), a marketing URL, and an FV-status hash line that adds nothing for tool selection. Core purpose is buried behind compute/serving metadata rather than front-loaded, and much of the volume is operational boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a chained, compute-binding node with a nested policy_parameters object and no output schema, the description covers compute routing, data handling, and provenance reasonably, and it defers output structure to describe_tool(). It still leaves the actual conformance criteria and the policy_parameters field names ('see the manifest') unresolved, which is a gap given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's compute-mode text largely restates the enum. The chaining intent of parent_hashes/parent_tool_ids is echoed but no extra semantics are added, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The tool is named 'validate_agent_commerce_conformance' and the description situates it as an OpenChainGraph 'payment_mandate' compute node whose inputs come from AP2/x402/ACP validators, which lets an agent infer the cross-protocol scope. However, the description never plainly states what it validates or what a passing/failing conformance looks like; it leads with node/compute boilerplate rather than the verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through the explicit upstream artifact list (art-01, art-03, art-12, art-62) and downstream consumers, which positions the tool in a chain and hints at when it should be called. But there is no explicit 'use this when / not when' guidance and no differentiation from the many sibling validate_* conformance tools.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_agent_obo_mandate").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnly, idempotent, non-destructive) are consistent with the description, and the text adds genuinely useful behavior beyond them: server vs browser compute modes, browser-delegation-URL returns, transient processing with no storage/logging/retention, and emission of an AP2 artifact with execution_hash. It does not describe failure modes or what a failed validation returns, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a run-on paragraph that repeats the title and the 'deterministic compute node' claim, and pads with a link plus a 64-hex FV-status receipt URL that an agent cannot act on. Useful facts (compute modes, no retention, artifact export, upstream/downstream artifacts) are buried rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validation tool with no output schema, the description never says what a valid vs invalid OBO mandate looks like, what policy_parameters fields drive the decision, or what the artifact/receipt contains on failure. It is rich on provenance plumbing and thin on the actual validation contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 discussion largely restates the compute enum's own schema description, and it defers policy_parameters to 'the tool's manifest' rather than adding meaning. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('Agent On-Behalf-Of (OBO) Mandate Validator') and implies a validation verb, but half the text is spent restating infrastructure ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node'). It gives no clue how this differs from the many sibling validators such as validate_ap2_mandate_chain, validate_a2a_x402_mandate, 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.
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 alternatives among the numerous adjacent mandate validators. The only constraint given ('Use synthetic or anonymised inputs only') is an input 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.
validate_ai_impact_assessmentAI Risk Impact Assessment ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_ai_impact_assessment").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 safety is covered. The description adds genuinely new behavior: transient processing with no storage/logging/retention, determinism, compute-mode delegation semantics, and export of an AP2 artifact carrying execution_hash for provenance. That is real context beyond the annotations, though some of it (the compute binding restated from the schema) is redundant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is front-loaded and each sentence carries infrastructure information, but the first two sentences are near-duplicates restating the title, and it ends with a long opaque URL plus a 64-character FV-status hash that adds bulk without operational value for invocation. Moderate bloat rather than crisp conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 operational behavior (compute modes, retention, provenance artifact, chain links) and even points to describe_tool for the output schema. However it never explains what the assessment actually evaluates or what policy_parameters drive, which is the core reason an agent would select this tool, so it is adequate but incomplete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 echoes the compute-mode explanation but adds no field-level meaning; it explicitly defers field names ('See the tool's manifest for field names'), leaving the parameter burden on the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence largely restates the title ('AI Risk Impact Assessment Validator: OpenChainGraph compute node') and the next repeats it ('Deterministic OpenChainGraph compute node'), so the specific validation/decision function is never actually described. It does add chain positioning (consumes art-171 ISO 42001 AIMS conformance, feeds art-173 governance classifier), which hints at scope, but it does not distinguish the tool from close siblings like assess_ai_act_conformity or classify_ai_system_governance. 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.
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-tool routing. The only directive guidance is the operational constraint 'Use synthetic or anonymised inputs only,' plus the upstream/downstream artifact references that imply where it sits in a chain. That is implied usage rather than stated selection criteria.
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 ValidatorBRead-onlyIdempotentInspect
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. Consumes upstream artifacts from: art-02-agent-spend-policy-simulator, art-12-acp-checkout-conformance-validator, art-36-tempo-mpp-agent-mandate. 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, art-385-agent-token-scope-checker, art-62-ap2-payment-receipt-verifier, 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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_ap2_mandate_chain").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses real operational behavior: compute:'auto' vs 'browser' server-vs-client routing, gpu:true always delegating to the browser, transient no-store/no-log retention, and a synthetic-inputs-only constraint. It also flags that the FV-status file is a snapshot rather than a subscription receipt, adding useful caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Identity and compute behavior are front-loaded, but the text is a dense wall that repeats compute-mode details already in the schema and carries low-value boilerplate (URL, FV-status hash path, 'call describe_tool(...)'). Sized for completeness rather than economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a node with four params, no output schema, and nested objects, the description covers compute behavior and the artifact export but defers the return shape and the critical policy_parameters fields to external resources (URL, manifest, describe_tool). An agent must make additional calls to know how to invoke it meaningfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already present in the schema and connects parent_hashes to the exported chain.parent_hashes, but leaves policy_parameters opaque ('See the tool's manifest for field names'), adding little beyond structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('OpenChainGraph compute node (payment_mandate)', 'AP2 artifact with execution_hash for chain provenance') but never plainly states the validating verb+input, focusing on infrastructure ('Inputs are processed transiently to compute the response') instead of what a 'validate' call actually checks. Sibling tools like validate_ap2_mandate_credential and verify_ap2_payment_receipt are not distinguished, so the agent cannot route between AP2 validators 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.
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 named alternative. The upstream/downstream artifact lists hint at pipeline position but read as provenance metadata rather than selection guidance, and nothing tells an agent when to prefer this over the many other AP2 mandate tools.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint already covering safety, the description adds genuine behavioral context: deterministic execution, transient input handling (not stored, logged, or retained), the server-vs-browser compute split with gpu:true always delegating, and artifact export with execution_hash for chain provenance. These are traits an agent cannot get from annotations, though the actual pass/fail semantics of validation remain undisclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single dense paragraph without repetition, but it is not front-loaded: the lead is a title echo, not the purpose, and the trailing FV-status hash path and site URL are low-value for tool selection. The infrastructure detail crowds out the one thing the agent needs first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validator with no output schema, the description should say what gets checked and what a result looks like; instead it covers execution mechanics and chaining but never the validation semantics or outcome shape. The policy_parameters object, the sole decision input, is left to an unavailable manifest. An agent can invoke it but cannot predict what it returns or when it would fail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 corroborates the compute modes and implies the chaining role of parent_hashes, but it adds no field-level detail beyond the schema, and it defers policy_parameters contents to an external 'manifest' the agent cannot access. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The body never states what validation this tool performs. The opening line is a title restatement plus jargon ('OpenChainGraph compute node (scheme_rule)'), and the rest describes compute plumbing rather than a verb+resource. An agent must infer the purpose entirely from the name, and nothing distinguishes it from close siblings like validate_ap2_mandate_chain, validate_ap2_mcp_policy, or draft_ap2_mandate_credential.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 selection guidance. There is no when-to-use, when-not-to-use, or routing to alternatives among the many AP2/MCP validation siblings. The compute-mode guidance is about execution, not 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_ap2_mcp_policyAP2 MCP Policy Validator & BridgeARead-onlyIdempotentInspect
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). Output schema: call describe_tool("validate_ap2_mcp_policy").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive behavior, so the description earns credit for adding real execution context: client-side operation, zero PII, zero network, and AIN Bridge prefill. The auto-generation and simulation wording also gives more behavioral color, though it still stops short of describing what a validation 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short sentences with the core verb and object front-loaded, followed by usage and execution context. The `describe_tool` note is useful but slightly cryptic, and the widget-rendering sentence is the least essential to actual MCP invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex tool with no output schema and a single opaque `inputs` parameter. The description points to describe_tool as a discovery path, but it does not state the validation result shape or how the AP2 mandate payload should be structured inside the generic input map, so an agent still needs additional lookups before confidently invoking it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter schema coverage is 100%, so the schema already documents the single `inputs` property as a map of tool input element IDs to values. The description only echoes the AIN Bridge prefill mechanic and does not explain how an AP2 mandate JSON maps into that generic `inputs` map, which is the tool's main semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and object: 'Validate AP2 Policy Mandate JSON payloads against the Unified Build Contract v1.0 schema.' The 'Policy' qualifier also helps distinguish it from AP2 siblings like validate_ap2_mandate_chain and validate_ap2_mandate_credential. It loses the 5 because the description broadens into auto-generation, simulation, and widget-rendering, which makes the tool's scope feel multiple rather than singular.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use when authoring or testing AP2 agentic payment policies' is an explicit, actionable trigger condition. However, it does not name exclusions or point to alternatives such as validate_ap2_mandate_chain or compose_ap2_prompt, so it falls short of full guidance.
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 AttestationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_audit_trail_completeness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read (readOnlyHint=true, destructiveHint=false, idempotentHint=true), and the description adds real behavioral context on top: deterministic execution, server-side Cloudflare Workers vs browser delegation for gpu:true nodes, transient processing with no storage/logging/retention, a 'synthetic inputs only' constraint, and the export of an AP2 artifact with execution_hash. These are meaningful traits not derivable from the annotations, though return shape and latency/rate characteristics 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The useful content (compute modes, transient processing, artifact export) is diluted by boilerplate: a raw documentation URL, a full 64-hex FV-status path, and a promise that a snapshot 'verifies offline'. These consume substantial space without helping an agent select or invoke the tool, and the purpose statement is buried behind the title restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 0 required params, 100% schema coverage, and nested objects, the schema carries most of the input burden, and the description points to describe_tool for the output schema since none is attached. However, for a provenance/attestation tool the description never says what the artifact or result actually contains or how success/failure is signaled, leaving a gap for an agent reasoning about outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description, adding no new syntax or constraints, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first sentence identify the tool as an 'Audit-Trail Completeness Attestation' OpenChainGraph compute node, so the general domain is inferable, but the description never states in plain terms what is actually validated (which audit-trail fields, what 'completeness' means). It also fails to differentiate from close siblings such as validate_agent_audit_trail or verify_execution_hash, leaving the name to carry the burden.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling is named. The only conditional text concerns compute mode selection ('auto' vs 'browser' vs 'server'), which is invocation mechanics rather than guidance on choosing this tool over another.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond them: deterministic execution, transient processing with no storage/logging/retention, compute-mode delegation semantics, and export of an AP2 artifact carrying execution_hash for chain provenance. That is genuine added value, though the FV-status sentence is provenance boilerplate rather 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is bloated with boilerplate — compute-binding mechanics, a URL, and a long FV-status receipt hash sentence — while the actual purpose is confined to a repeated title. The most relevant facts (what is validated, what is fed downstream) are buried behind infra language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description should explain what the validation returns and what the policy payload expects, but it does neither. It tells the agent how compute is scheduled and that an artifact is exported, not enough to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 at least as thoroughly in the schema as in the description, so the description adds little. For the important free-form policy_parameters object the description only defers with "See the tool's manifest for field names," which leaves the main payload undocumented in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Aside from the title line "C2PA Content Credential Manifest Validator" and the tag "compliance_mandate", the description only restates the tool's name and then talks about compute binding. It never says what validating a C2PA manifest actually entails (signature check, assertion structure, trust chain) or how it differs from siblings like verify_content_credential_signature or decode_c2pa_aiml_assertions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing information is "Output feeds: art-124-content-credential-signature-verifier" and the caveat to use synthetic inputs. There is no when-to-use guidance versus the many other validate_*/verify_content_credential_* siblings, and no statement of prerequisites for the input manifest.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_canton_dvp_atomicity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, and the description adds genuinely useful context beyond them: compute modes (server-side for gpu:false kernels, browser delegation otherwise), the fact that inputs are processed transiently and not stored or logged, and that an AP2 artifact with execution_hash is exported for chain provenance. These are real behavioral traits not derivable from the annotations. It stops short of describing the decision outcome 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense run-on that front-loads a name restatement and then buries the reader in infrastructure boilerplate, a marketing URL, and a 64-character FV-status hash path. Much of the content does not help an agent decide or invoke correctly, and the actual purpose sentence never appears. Low signal-to-noise for its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validation tool with no output schema, a nested policy_parameters object, and no required parameters, the description should explain what is validated and what the result conveys. It mentions the AP2 export and a downstream consumer but never says what an atomicity verdict looks like or what inputs are needed to get one. The gaps are significant given the schema and annotation richness elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 restates the compute-mode behavior (redundant with the schema) and defers policy_parameters to 'the tool's manifest for field names' rather than explaining them. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool and calls it an 'OpenChainGraph compute node (settlement_mandate)' but never states what DvP atomicity it actually validates or what decision it renders. The functional purpose is inferable only from the tool name; the text itself is dominated by infrastructure metadata. It does nothing to distinguish this from siblings such as validate_pvp_settlement or classify_settlement_finality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 operational instruction is 'Use synthetic or anonymised inputs only', which is an input constraint rather than selection guidance. The 'Output feeds: 505-tokenized-collateral-eligibility-checker' line hints at chaining but not at 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.
validate_canton_party_allowlistCanton Party Allowlist ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_canton_party_allowlist").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent/non-destructive safety profile, and the description adds real behavioral context beyond them: compute-mode delegation semantics, transient processing with no storage/logging/retention, and an AP2 artifact plus execution_hash for provenance. It falls short of explaining what the decision output contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is long, jargon-heavy, and low signal-to-noise for tool selection: the fv-status SHA hash and receipt file path crowd out the actual purpose. The one useful purpose fragment is buried among infrastructure detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 describes what the validation result or AP2 artifact contains, deferring instead to describe_tool for the output schema. For a compliance-mandate validator, the decision semantics an agent needs are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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, which sets the baseline at 3. The description only restates the compute-mode behavior already in the schema and says nothing about parent_hashes, parent_tool_ids, or how policy_parameters drives the decision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title (Canton Party Allowlist Validator) gives a verb+resource, but the description body never explains what validating the allowlist actually checks or decides — it is dominated by OpenChainGraph infrastructure boilerplate ('compute node', compute modes). The core purpose is essentially 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.
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 any sibling such as diagnostic Canton tools. The only usage-relevant line is the data constraint 'Use synthetic or anonymised inputs only', which does not tell 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.
validate_canton_selective_disclosureCanton Selective-Disclosure DvP Reconciliation AttestationARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_canton_selective_disclosure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly/idempotent/non-destructive), but the description adds genuinely useful behavior beyond them: transient processing with no storage/logging/retention, a synthetic-inputs-only requirement, the AP2 artifact + execution_hash export, and the browser-delegation fallback. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and compute-mode rule are front-loaded, but the body is a run-on of chained clauses, a raw URL, and a long FV-status receipt hash whose 'snapshot not a subscription' caveat is only marginally relevant to an invocation decision. Several sentences are packaging rather than actionable guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterised compute node with no output schema, the description is nearly sufficient: it explains compute modes, transient processing, chaining inputs/outputs, and points to describe_tool for the output shape. What is missing is the actual decision function performed on policy_parameters, which the agent must look up elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented in the schema; baseline 3 applies. The description restates the compute-mode semantics but adds nothing about policy_parameters field names beyond the existing pointer to the manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific verb+resource ('selective-disclosure DvP reconciliation attestation' compute node) and distinguishes itself from siblings by naming the exact upstream tool (507-canton-dvp-atomicity-validator) and downstream consumer (cry-01-zk-compliance-proof-generator). It is dense jargon, but an agent can place it in the ChainGraph pipeline, which no generic sibling does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the chaining metadata (consumes upstream artifacts, output feeds a specific generator) and the compute-mode rule, but there is no explicit when-to-use/when-not or named alternative such as validate_canton_dvp_atomicity or validate_canton_party_allowlist. The agent must infer the sequencing rather than being routed.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_cat_bond_trigger_terms").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 meaningful behavior: compute-mode delegation semantics (auto/server/browser, gpu handling), transient processing with no storage/logging, and an AP2 artifact export carrying execution_hash for chain provenance. These are genuine operational traits beyond the annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is repetitive ('OpenChainGraph compute node' appears twice), front-loads infrastructure boilerplate before any domain purpose, and embeds a long FV-status hash and URL that do not help an agent invoke the tool. The actual purpose is buried and the structure does not earn its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validation/compute tool with no output schema and a free-form nested policy_parameters object, the description omits the core: what is validated, what the decision function returns, and what fields policy_parameters accepts (punted to an unlinked manifest). It covers compute/chaining mechanics but leaves the central contract incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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, parent_hashes, parent_tool_ids, policy_parameters). The description only restates compute-mode semantics already in the schema and defers policy_parameters field names to an external 'manifest' not provided. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify a validator for cat bond trigger terms, and the description notes it consumes upstream artifacts from art-251-compute-parametric-trigger-payout, which hints at the domain. However, the body never explains what 'trigger terms validation' actually checks (attachment/exhaustion, parametric index conditions, etc.), spending its space on compute-infrastructure boilerplate instead. Purpose is identifiable but under-developed relative to the sibling set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., compute_parametric_trigger_payout, the art-251 upstream node, or other validate_* siblings). The only directive is 'Use synthetic or anonymised inputs only,' which is an input constraint, not usage routing. An agent gets no selection guidance.
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 ValidatorCRead-onlyIdempotentInspect
Arc CCTP v2 Transfer Validator: OpenChainGraph compute node (settlement_mandate). Regulatory deadline: 2026-10-31 (CCTP V1 (Legacy) deprecation begins 31 Oct 2026 and completes 1 Dec 2026 (Circle migration guide, read 1 Oct 2026). All V1 integrations must migrate to CCTP v2. The v1_sunset check output still cites the earlier 31 Jul 2026 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-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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_cctp_v2_transfer").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context: transient processing with no storage/logging/retention, server-vs-browser compute delegation semantics, and export of an AP2 artifact carrying execution_hash for provenance. That is substantive behavior beyond what annotations convey, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with regulatory deadline history, a FV-status hash URL, and an aside about offline receipt verification. The genuinely useful behavioral content (compute modes, transient processing, chaining) is buried mid-paragraph rather than front-loaded, and the opening restates the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers compute modes, chaining inputs, privacy, and explicitly defers the output schema to describe_tool, which is acceptable with no output schema present. But for a tool with an opaque nested policy_parameters object it never explains what inputs the decision function expects or what the validation result represents, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 sentence largely restates the schema's own wording, and policy_parameters is deferred to 'the tool's manifest'. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title establish that this validates an Arc CCTP v2 transfer, and the description adds the 'OpenChainGraph compute node (settlement_mandate)' framing plus CCTP v1-vs-v2 migration context. However, it never states what the validation actually checks or decides, so an agent cannot tell what 'validating' produces beyond 'an AP2 artifact'. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives operational hints (use synthetic/anonymised inputs only; compute:'browser' forces client-side) and names one upstream artifact, but provides no when-to-use/when-not-to-use guidance and no comparison to sibling validators such as validate_cross_network_settlement or lint_x402_v2_migration. No routing logic is offered.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_collateral_swap_eligibility").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 by disclosing determinism, the compute-mode routing behavior (server kernels vs browser delegation, gpu:true nodes), transient non-storage of inputs, and AP2 artifact export with execution_hash. That is meaningful operational context, though return format is only pointed at via describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a wall of infrastructure boilerplate—Cloudflare Workers, FV-status URL with a full hash, 'snapshot, not a subscription'—much of which does not help an agent invoke the tool. It is not front-loaded on the actual validation purpose, with the useful behavioral detail buried behind metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Operationally it is fairly complete: compute routing, chaining inputs, transient processing, and artifact output are all described, and no output schema means return values need not be detailed. The significant gap is domain semantics—the actual decision function and its policy_parameters fields are left to an external manifest, so an agent cannot tell what makes a swap eligible.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 little beyond the schema—compute modes are already spelled out in the schema enum—and for the key policy_parameters it defers to 'the tool's manifest for field names', which is a non-answer. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and first sentence state a specific verb+resource (validate collateral swap eligibility) and identify it as a 'collateral_mandate' compute node, so the agent knows it is an eligibility validator. However, the description never explains what eligibility criteria are checked—it delegates that to 'the tool's manifest'—and gives no differentiation from close siblings like check_tokenized_collateral_eligibility or validate_fund_collateral.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names the upstream artifacts it consumes (505-tokenized-collateral-eligibility-checker, 507-canton-dvp-atomicity-validator) and instructs 'Use synthetic or anonymised inputs only', which implies pipeline placement and an input constraint. But it offers no explicit when-to-use/when-not guidance relative to the many sibling validators.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_commission_hierarchy").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, and the description is consistent with them. It adds genuinely useful non-obvious context — transient processing with no storage/logging, compute mode routing, and that it exports an AP2 artifact with execution_hash for chain provenance — but says nothing about what the validation actually does 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the node identity and compute semantics, then a URL and a long FV-status receipt hash plus a disclaimer about it being a snapshot. The core purpose never appears; the receipt/URL material consumes space that functional description should occupy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 4 parameters (one a free-form policy_parameters object), the description defers the output contract to describe_tool and the input field names to an external manifest. For a validation tool, neither the validation semantics nor the return shape is described, leaving key gaps an agent must fill elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 beyond the compute-mode summary. It notes policy_parameters field names live in 'the manifest,' which actually pushes information out rather than in.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what the tool actually validates about a 'commission hierarchy' — it describes infrastructure (compute binding, workers, AP2 artifact export, provenance hash) rather than the business decision. The only functional hints are 'Output feeds: art-266-reconcile-commission-statement' and the sibling the artifact connects to, which does not tell an agent what this validator checks or how it differs from reconcile_commission_statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The one usable directive is 'Use synthetic or anonymised inputs only,' which is a constraint rather than a when-to-use rule. There is no indication of when this validator should be chosen over the many sibling reconcile/validate commission tools, and no exclusions or prerequisites are given.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context: inputs are processed transiently and not stored/logged, synthetic inputs are required, and the node exports an AP2 artifact with execution_hash for provenance. That is genuine value beyond the structured fields, though it omits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is bloated with compute-binding boilerplate, a documentation URL, and a long FV-status receipt path, while the actual purpose is never front-loaded or even stated. Several sentences (the FV-status snapshot paragraph especially) serve provenance publishing, not tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 4 parameters including a free-form policy_parameters object ('See the tool's manifest for field names'), the description should carry the semantics of the decision function and its return artifact. It instead covers compute routing and provenance while leaving the core validation behavior — what is checked, what a pass/fail looks like, required inputs — undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 documented in the schema itself. The description only loosely gestures at chaining ('consumes upstream artifacts') and adds no field-level semantics, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Beyond restating the title ('Content Binding Assertion Validator'), the description never explains what a content binding assertion is or what validation criteria the tool applies. It reveals only infrastructure metadata ('OpenChainGraph compute node', consumes artifacts from art-127-dual-layer-disclosure-verifier) rather than the substantive purpose, so an agent cannot tell what this tool actually decides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, gpu:true delegation) but gives no guidance on when this validator should be invoked versus alternatives like verify_dual_layer_disclosure or other verify_*/validate_* siblings. No prerequisites, no when-not-to-use, no routing.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_cross_network_settlement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world semantics, so the bar is lower, and the description still adds real context: compute:'auto' vs 'browser' delegation, transient non-retained processing, synthetic-input-only policy, and emission of an AP2 artifact with execution_hash. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with a regulatory-deadline tangent, a URL, and an FV-status hash that do not help an agent select or call the tool, and the actual purpose statement is buried mid-paragraph. Some sentences (compute modes, data handling) earn their place, but the front-loading is poor and significant content is expendable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry more return-value burden, but it defers to describe_tool for the output schema and only mentions the AP2 artifact/execution_hash briefly. For a chained validator with nested policy_parameters, this is minimally adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 parent_hashes/parent_tool_ids binding or policy_parameters 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name state a specific verb and resource (validate cross-network settlement), and the description adds that it verifies cross-network coordination patterns while consuming/producing named artifacts. It is distinguishable from generic siblings, though it never explicitly contrasts with close alternatives like validate_canton_dvp_atomicity or validate_pvp_settlement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the artifact chain (consumes art-56/art-59, feeds 507/511/cry-04) and a regulatory-deadline note, but there is no explicit statement of when to use this versus another validator, nor any exclusion criteria. The chaining hints at positioning but 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.
validate_cyclonedx_sbomCycloneDX SBOM Validator (EU CRA Annex I)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_cyclonedx_sbom").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds a genuine behavioural fact beyond the annotations: inputs are processed transiently and not stored, logged, or retained, which is consistent with readOnlyHint/idempotentHint and useful for a confidentiality-sensitive tool. It also documents compute-mode and browser-delegation behaviour, but that largely restates the compute enum already in the schema. It says nothing about what the validator actually checks or how failures are surfaced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The payload is heavily diluted: chain provenance, Cloudflare Workers, an FV-status file path and hash, a marketing URL, and a pointer to describe_tool crowd out the one sentence that states the purpose. The genuinely useful constraint (transient processing) sits mid-paragraph rather than being front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 say what a validation run returns (pass/fail, findings, severity, the exported AP2 artifact), but instead it offloads that to describe_tool. For a 4-parameter tool with a nested policy_parameters object, neither the description nor the schema explains the decision inputs, leaving an 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.
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-adjacent content (compute mode, delegation) duplicates the enum description verbatim, and it adds no meaning for parent_hashes/parent_tool_ids or for the opaque policy_parameters object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/first fragment identifies a concrete verb+resource (validating CycloneDX SBOMs against EU CRA Annex I), so the purpose is recoverable. However, it is buried under infrastructure boilerplate about compute nodes and deployment URLs, and it never distinguishes itself from the sibling validate_spdx_sbom or from check_cra_annex1_completeness. The agent must infer the differentiator from the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: nothing says which SBOM formats this covers vs. validate_spdx_sbom, what inputs qualify, or what a caller should do with a failure. The only routing hint ('Output feeds: art-136-slsa-provenance-verifier') describes downstream consumption, not 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.
validate_deposit_token_complianceDeposit-Token Compliance ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_deposit_token_compliance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 earns credit by adding real behavioral context: transient processing with no storage, logging, or retention; the compute:'auto' vs 'browser' delegation behavior and browser URL return; and the AP2 artifact/execution_hash export for provenance. The one gap is that it never describes what a 'compliant vs non-compliant' outcome 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening title/verb is front-loaded, which is good, but the body is bloated with low-signal material for tool selection: a full 64-character SHA-256 FV-status hash, a documentation URL, and repetitive compute-mode mechanics that the schema already states. A large fraction of the text does not help an agent decide whether or how to call this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no output schema, and readOnly annotations, the description covers compute behavior, graph chaining, and data handling, which is most of the operational surface. However, it omits the substantive core — what compliance determination is made and what policy_parameters fields are expected — leaving the tool's actual semantics unspecified. Adequate for invocation mechanics, incomplete for the decision itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 3 applies. The description's compute-mode sentences largely duplicate the schema's own description, and for the critical policy_parameters object it only says 'See the tool's manifest for field names' — deferring rather than adding meaning. Net additive value over the schema is minimal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence restates the title ('Deposit-Token Compliance Validator') and labels it an OpenChainGraph compute node, but never states what compliance check the tool actually performs, against which rule set, or on what input. With dozens of sibling validators (validate_tempo_token_compliance, validate_tempo_zone_disclosure, validate_tokenized_security_lifecycle), nothing here distinguishes this tool functionally. It is essentially a 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.
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 relative to alternatives. The description does give chain-placement context (consumes art-56-tokenized-settlement-fit-diagnostic; feeds three named downstream tools) and a privacy caution ('Use synthetic or anonymised inputs only'), which is useful but is about input handling and graph position, not tool selection. The opaque 'policy_parameters' input leaves the agent unable to infer the intended use case.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_dpp_data_carrier").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and never stored/logged/retained, execution is deterministic, and compute:'browser' returns a delegation URL rather than a result. That materially changes how an agent must handle the call. It stops short of describing the validation verdict 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is bloated with provenance plumbing (compute binding, Cloudflare Workers routing, AP2 artifact export, an FV-status URL and a 64-hex hash) that consumes most of the text without helping tool selection or invocation. What remains is under-specified on the actual validation purpose. Front-loading is decent 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.
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 clarify what policy_parameters must contain and what a result looks like; it instead points to describe_tool and 'the tool's manifest'. Chaining semantics (parent_hashes/parent_tool_ids) and the downstream consumer are covered, so the agent can call it, but cannot predict the response shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 syntax or format detail beyond reiterating compute modes, and explicitly defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line essentially restates the title ('EU ESPR Digital Product Passport Data Carrier Validator') and then pivots to OpenChainGraph infrastructure boilerplate rather than explaining what a 'data carrier validation' actually inspects (QR/DataMatrix payload, URI, encoding check). An agent learns the domain but not the specific verb+resource of the operation. It is distinguishable from siblings only by domain, not by operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage constraint is 'Use synthetic or anonymised inputs only'; there is no statement of when to call this versus alternatives such as verify_product_authenticity or build_product_lineage. The downstream note 'Output feeds: art-116-product-lineage-builder' hints at pipeline position but does not guide selection. Compute-mode text is parameter usage, 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.
validate_dtcc_ca_iso20022_messageDTC Corporate Actions ISO 20022 Message ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_dtcc_ca_iso20022_message").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic server-side vs. browser delegation semantics, transient processing with no storage/logging/retention, and an AP2 artifact export with execution_hash. It omits any statement about the validation verdict format, which the annotation set does 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the title, but then padded with near-duplicate phrasing ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and a URL plus hash receipt that consume space without helping selection. The compute-mode sentence duplicates the schema's own description almost verbatim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 point agents to describe_tool() for the return shape and to the manifest for policy_parameters fields, which covers the infra side. However, for a compliance validator with an opaque nested input object, the domain-side completeness (what ruleset, what evidence a verdict carries) is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no field-level meaning and does not explain what policy_parameters should contain beyond deferring to the manifest, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the title ('DTC Corporate Actions ISO 20022 Message Validator') and then spends its body on ChainGraph compute plumbing. It never states what validation is performed, which ISO 20022 message types or fields are checked, or what a pass/fail decision means. An agent learns nothing about the purpose that the name does not already convey.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the pipeline note 'Output feeds: art-547-corporate-action-entitlement-recompute' and the chaining parameters (parent_hashes/parent_tool_ids) signal where this tool sits upstream. It offers a usage constraint ('Use synthetic or anonymised inputs only') but no when-to-use vs. alternative guidance and no exclusions.
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 & DvPCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_dtc_tokenized_treasury").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior beyond them: inputs are processed transiently and not stored or logged, synthetic/anonymised inputs only, compute delegation URL for browser mode, and an exported AP2 artifact carrying execution_hash. These are non-obvious operating characteristics an agent should know before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by platform boilerplate and a raw FV-status hash URL whose disclaimer ('this receipt verifies offline regardless of whether that file is ever fetched') consumes a full sentence without helping invocation. The actual tool purpose is buried, and front-loading favors branding over function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 instead routes the agent to describe_tool for it, and the decision-function parameters are left to an external manifest. Chaining metadata (upstream/downstream artifacts, FV-status snapshot) is provided, but for a 4-param tool with a nested policy_parameters object the description stops short of being self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description adds little beyond the compute-mode explanation already present in the schema. It explicitly defers ('See the tool's manifest for field names') for the one opaque nested object, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title's domain phrase ('DTC-Custodied Tokenized U.S. Treasury Issuance & DvP') and labels itself a 'compute node (compliance_mandate)' but never states the actual action: what is validated, on what inputs, or what the decision function determines. An agent cannot tell this apart from siblings like validate_canton_dvp_atomicity or validate_tokenized_security_lifecycle 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies compute-mode selection (auto/server/browser) but gives no when-to-use guidance relative to the many sibling validators, nor any prerequisites or exclusions. The upstream/downstream chaining notes ('Consumes from 510-digital-asset-regulatory-classifier', 'feeds 507-canton-dvp-atomicity-validator') hint at pipeline position but not at selection criteria.
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 ValidationARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_ebam_acmt_flow").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored or logged, browser delegation changes the return shape, and an AP2 artifact with execution_hash is exported. That is real context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, but a large share of the text recaps the compute-mode mechanics that the input schema already spells out, and the FV-status receipt URL and hash add bulk without changing how the tool is invoked. 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.
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 mention the exported AP2 artifact and that output feeds art-260-allocate-ihb-interest, and it points to describe_tool for the return shape. However, what the decision function validates and what policy_parameters must contain are only reachable via an external manifest, leaving a gap for a 4-param nested-object tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 and parent_hashes/parent_tool_ids. The description restates compute semantics already present in the schema and defers policy_parameters field names to "the tool's manifest," adding little beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line gives a specific verb+resource: eBAM Account Message Flow Validation, framed as an OpenChainGraph compute node tagged compliance_mandate. That is enough for an agent to know the domain, though the description never explains what the validation actually checks, so it does little to distinguish itself from the many other validate_* 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage guidance is limited to compute routing (auto/server/browser) and a data-handling constraint ("Use synthetic or anonymised inputs only"). There is no statement of when to choose this tool over alternatives such as validate_ap2_mandate_chain or the other validate_* siblings, so routing is left to the name.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 that: the compute:"auto" vs browser delegation behavior, the fact that inputs are processed transiently and not stored, and that it exports an AP2 artifact carrying an execution_hash for chain provenance. These are real behavioral traits an agent needs, though some of the compute wording 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense with registry metadata (URLs, a 64-hex FV-status hash, downstream tool IDs) and repeats the compute-mode explanation that the input schema also carries. The core validation purpose is buried under provenance boilerplate, so the text is not front-loaded toward what the agent needs to act.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 names the returned AP2 artifact and its downstream consumers. However, for a tool whose main input is an opaque policy_parameters object, it defers entirely to 'the tool's manifest for field names', so an agent still cannot construct a valid batch request from the definition alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 already in the schema and adds no syntax or format detail for policy_parameters, which is the field an agent actually needs to populate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name make the resource clear (EN 16931 / Factur-X batch validation), but the description body never states what the validation actually checks or what a 'batch' means for this tool. It does not distinguish itself from close siblings such as validate_einvoice_format, validate_vida_einvoice_conformance, or verify_einvoice_vat_calc, leaving the agent to infer the difference 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.
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 e-invoicing tools, and no prerequisites or preconditions for a batch run. The only usage constraint ('Use synthetic or anonymised inputs only') concerns input content, not tool selection.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_einvoice_format").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful context beyond that: determinism, transient processing ('not stored, logged, or retained'), a directive to use synthetic/anonymised inputs, and the export of an AP2 artifact with execution_hash for chain provenance. That is meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A large share of the text is platform boilerplate that does not help select or invoke the tool: the HTML URL, the long FV-status hash path, and the 'snapshot, not a subscription' clause. Only the compute-mode, data-handling, and artifact sentences earn their place. It is poorly front-loaded with infrastructure rather than task semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no output schema and a nested policy_parameters object, the description covers execution mode, data handling, chaining via parent hashes, and artifact export, and it correctly points to describe_tool for the output shape. It remains incomplete on the substance of the validation itself and on how policy_parameters must be filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the 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 repeats the compute:'auto'/'browser' semantics already spelled out in the schema, and adds no new detail about how policy_parameters are shaped ('See the tool's manifest for field names' defers rather than explains). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title ('E-Invoice Format Validator: OpenChainGraph compute node (compliance_mandate)') and adds a node taxonomy tag, but never says what the format check actually covers (e.g. EN 16931, UBL/CII, field-level rules). It also does nothing to distinguish this from close siblings like validate_einvoice_batch, validate_vida_einvoice_conformance, or verify_einvoice_vat_calc. 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.
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 explicit alternatives or exclusions. The only routing hint is 'Output feeds: art-294-einvoice-vat-calc-verifier', which describes a downstream consumer rather than when an agent should pick this tool over validate_einvoice_batch or validate_vida_einvoice_conformance.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world, and the description is consistent with them while adding real context: transient processing with no storage/logging/retention, server vs browser delegation semantics, and export of an AP2 artifact carrying execution_hash. That goes meaningfully beyond the structured 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is long and front-loaded with infrastructure vocabulary (compute binding, Cloudflare Workers, FV-status hash URL) rather than the tool's purpose. Several clauses, particularly the full fv-status snapshot disclaimer, do not help 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.
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 the validation outcome, but it only names the AP2 artifact and execution_hash without describing what a pass/fail result looks like or what a lifecycle event must contain. Combined with an opaque policy_parameters object and no sibling differentiation, key information needed to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 structurally, and the description merely restates the compute enum semantics that the schema already defines. It adds nothing about the opaque policy_parameters object (the schema defers to 'the tool's manifest'), which is the one field an agent most needs help populating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (validate EMIR lifecycle events), but the description body never states what the validation actually checks for a lifecycle event. It spends nearly all of its text on compute-node mechanics and provenance plumbing instead of the resource being validated, so an agent cannot distinguish it from siblings like validate_emir_trade_report or validate_emir_upi beyond the noun in the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs alternative guidance and no precondition on when a lifecycle-event validation is appropriate versus other EMIR validators. The only operational guidance is 'use synthetic or anonymised inputs only,' which constrains inputs but does not route the agent between tools.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 transient processing (inputs not stored, logged, or retained), the compute modes and browser delegation behavior, and the exported AP2 artifact with execution_hash for provenance. It still omits what happens on validation failure, but this is meaningful extra 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and front-loads platform boilerplate (compute binding, Cloudflare Workers, gpu delegation) before any domain substance. It also embeds a documentation URL and a long fv-status hash path that a selecting agent gains little from, bloating an already overloaded block.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance validation tool with no output schema and a nested policy_parameters object whose field names live only in an external manifest, the description never explains what is validated, what a pass/fail looks like, or how to populate policy_parameters. Platform provenance is covered; the core EMIR validation contract is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with compute, parent_hashes, parent_tool_ids, and policy_parameters all documented in the schema itself. The description mirrors the compute-mode and chaining semantics but adds no field-level detail beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name state the resource (EMIR trade report) and verb (validate), but the description mostly restates the title and then pivots to OpenChainGraph compute-node mechanics. It never says which fields or validation rules are applied, and offers only a downstream pointer (art-154-emir-uti-completeness-checker). 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.
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, and no routing against the many EMIR siblings (check_emir_uti_completeness, validate_emir_upi, validate_emir_lifecycle_event, reconcile_emir_pairing). The only guidance-like line is the privacy caveat '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.
validate_emir_upiEMIR UPI ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive/non-open-world behavior, and the description genuinely adds context beyond that: determinism, transient processing with no storage/logging/retention, server-vs-browser computation routing, and the fact 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded with the tool name and node class, which is good, but a large share of the text is reusable template boilerplate and the trailing FV-status URL/receipt sentence is low-value for tool selection. Some sentences (synthetic inputs, transient processing) clearly earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 an AP2 artifact with execution_hash is produced and that upstream artifacts are consumed, which covers return/provenance reasonably. However, for a validator it never states what the validation checks or what a pass/fail result looks like, leaving the decision semantics underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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:"auto"/"browser"/gpu semantics and the export behavior but adds no syntax or 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'EMIR UPI Validator' names a specific verb and resource, but the description text itself is almost entirely generic OpenChainGraph compute-node scaffolding (compute modes, transient processing, provenance) that would read identically for any node in this family. The only tool-specific content is the upstream artifact reference, so an agent gets the purpose from 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states one constraint ('Use synthetic or anonymised inputs only') but gives no when-to-use guidance relative to the many EMIR siblings such as check_emir_uti_completeness, validate_emir_trade_report, or run_emir_reporting_fit. There is no statement of when this validator applies versus those alternatives.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_eudr_due_diligence_statement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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), and the description adds genuinely useful behavior: inputs are processed transiently and not stored/logged/retained, an AP2 artifact with execution_hash is exported for chain provenance, and gpu:true nodes always delegate to the browser. It still doesn't say what happens on validation failure, but the added data-handling and provenance context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text opens with the name and node type but then pads with redundant repetition ('OpenChainGraph compute node' stated twice), a documentation URL, and a long FV-status hash that carries no actionable value for tool selection. Several sentences about kernel registration and receipt verification do not help the agent decide or invoke.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a validator with no output schema and an opaque nested policy_parameters object, yet the description never explains what a valid/invalid result looks like or how to populate policy_parameters, deferring both to an external manifest and describe_tool. Provenance and compute behavior are covered, but the core validation contract is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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 compute-mode text in the description largely duplicates the schema's own compute description. The description adds no syntax or semantic detail for policy_parameters beyond telling the agent to consult the manifest, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title conveys a specific verb (validate) and resource (EUDR due diligence statement fields), and the description names the downstream consumer (art-166-eudr-geolocation-plot-validator). However, the body text spends its space on platform boilerplate (compute nodes, kernel registration, FV-status receipts) and never states what the validation actually checks or what a verdict looks like, so it does little more than restate the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains compute-mode selection and says to use synthetic or anonymised inputs, but gives no when-to-use guidance against obvious siblings like validate_eudr_geolocation, run_eudr_readiness_fit, or classify_eudr_commodity_scope. No prerequisites, exclusions, or alternative-selection logic are provided.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_eudr_geolocation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 extends it: inputs are processed transiently with no storage/logging/retention, gpu:true nodes always delegate to the browser, and an AP2 artifact with execution_hash is exported for provenance. This is real behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the tool identity, but a large share of its length is chain-provenance boilerplate, an external URL, and a receipt/FV-status paragraph that do not help an agent select or invoke the tool. Several sentences are duplicated content from the schema (compute modes).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a node whose entire decision input is an open-ended nested policy_parameters object, the description provides no field-level guidance and defers to an external manifest; there is also no output schema. The infrastructure detail is thorough, but the parts an agent needs to call it correctly are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already documented and the description largely repeats the compute-mode text verbatim. It adds nothing for policy_parameters, explicitly deferring field names to 'the tool's manifest', which leaves the core decision input undescribed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title establish the verb+resource (validate an EUDR geolocation plot) and the description adds that it is a deterministic compute node in the compliance_mandate family, chained from art-165 and into art-167. But it never says what the validation actually checks — plot coordinates present? area threshold? geolocation format? — so the operational purpose remains opaque 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.
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 the compute-mode tradeoffs are described, but there is no when-to-use guidance relative to siblings such as classify_eudr_commodity_scope, score_eudr_country_risk, or run_eudr_readiness_fit, 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.
validate_eugb_factsheetEU Green Bond Factsheet & Allocation ValidatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_eugb_factsheet").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses compute-mode routing (server vs browser delegation), that inputs are processed transiently and not stored/logged/retained, and the 'use synthetic or anonymised inputs only' data-handling caveat. It also explains that an AP2 artifact with execution_hash is produced for chain provenance. This is meaningful behavior the annotations do not cover, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence restates the title, and the body is dense standardized boilerplate carrying URLs, an FV-status receipt path and hash, which is largely noise for an agent selecting the tool. Each clause is factual, but several do not earn their place relative to selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex deterministic compute node with a nested, opaque policy_parameters object and no output schema, the description covers system-level plumbing (chaining, compute mode, transience, provenance) but not the validation logic or expected input shape, deferring output to describe_tool. 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.
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. The description adds the same compute-mode wording (redundant with the schema) but explicitly defers the decision-function field names to 'the tool's manifest', adding no field-level meaning. Correct baseline 3 when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 an EU Green Bond factsheet and its allocation) and the body confirms it is a deterministic OpenChainGraph compliance compute node. However, the body never explains what the validation actually checks or what 'policy_parameters' should contain, and nothing differentiates it from the many other validate_* siblings. Clear purpose, no sibling routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage in the chain is implied by 'Consumes upstream artifacts from: art-68..., art-73...' and 'Output feeds: cry-04-merkle-batch-verifier', which tells the agent roughly where this fits. But there is no explicit when-to-use vs alternatives, no when-not-to-use, and no prerequisites. Implied usage only.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_fdic370_output_file").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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's added value is the data-handling disclosure ('inputs are processed transiently... not stored, logged, or retained', 'use synthetic or anonymised inputs only') and the AP2 artifact/execution_hash provenance export. That is genuinely useful behavioral context beyond the annotations, but it notably omits what the validation does or what a failed/passed validation means.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition opens with the name, but the bulk is generic Chaingraph platform boilerplate (compute binding, Worker execution, FV-status hash URL) that is identical across the node family and largely irrelevant to selecting or invoking this specific validator. A raw URL and a 64-hex receipt path consume space without helping the agent act.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description also fails to say what the validator ingests, what a passing versus failing result looks like, or how policy_parameters should be populated ('see the tool's manifest' is not actionable from this definition). For a validation tool whose purpose is to return a verdict, the definition leaves the agent unable to anticipate the outcome shape.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's only parameter-adjacent statement is the compute-mode explanation, which duplicates the schema's own enum 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify a verb+resource ('validate' an 'FDIC Part 370 output file'), but the description body never explains what the validation actually checks — it describes the OpenChainGraph compute platform ('deterministic compute node', 'compliance_control') rather than the validation task. An agent learns the category but not the function, and no sibling differentiation (there are many validate_* tools) is offered.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool, no prerequisites, no exclusions, and no routing to or away from alternatives among the dozens of validate_* siblings. The compute-mode discussion describes how the node runs, not when the agent should choose it.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_form5500_schedules").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 vs browser execution semantics, transient processing with no storage or logging, and AP2 artifact export with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is dominated by boilerplate (compute-mode explanation duplicating the schema, a raw URL, and an FV-status hash) rather than front-loading what the validator does. Several sentences do not earn their place relative to the tool's actual function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter node with a nested policy_parameters object and no output schema, the description should say what the validation returns or how to populate policy_parameters; instead it points to describe_tool and an external manifest. Compute and provenance are covered, but the core input/output contract is left external.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 (already in the schema) and defers policy_parameters field names to 'the tool's manifest,' adding little beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title line names a specific verb and resource ('ERISA Form 5500 Schedule Validator'), so the domain is identifiable, but the body never explains which schedules or what validation is performed. Most of the text describes generic OpenChainGraph compute plumbing rather than 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.
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 any alternative, and no prerequisites are stated. The only constraint offered is 'Use synthetic or anonymised inputs only,' which is a data-handling warning, not usage guidance.
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) ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_fsma204_cte").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive, yet the description adds real 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 compute:'auto' vs 'browser' execution semantics. These are additive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a restated title and boilerplate ('Deterministic OpenChainGraph compute node') before any useful content, and trailing link/FV-status receipt text with a long hash adds bulk. The genuinely useful behavioral statements are mid-paragraph, and some sentences merely echo the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a node with nested objects, a required kernel input (policy_parameters) whose field names are deferred to an unspecified 'manifest', and no output schema, the description does not tell the agent what to put in policy_parameters or what the validated result contains. Deferring to describe_tool and a snapshot URL leaves the core calling contract undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented in the schema and adds nothing about parent_hashes/parent_tool_ids or about the free-form policy_parameters object, which the schema itself punts on with '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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name identifies a specific verb and resource (FSMA 204 CTE validation), but the body never explains what CTE validation actually checks or produces beyond calling itself a 'deterministic OpenChainGraph compute node' and 'compliance_mandate' node. It does not distinguish this validator from the many other validate_* siblings, so the agent learns the label 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use / when-not-to-use guidance versus alternatives. The only routing hint is 'Output feeds: art-119-traceability-lot-code-linker', which describes downstream chaining, not selection between this and other validators. Compute-mode guidance exists but is infrastructure, not usage.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_fund_collateral").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, execution is deterministic, gpu:true nodes always delegate to the browser, and it exports an AP2 artifact carrying execution_hash for chain provenance. The main weakness is that the compute-mode explanation largely repeats the schema 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The title and tool identity are front-loaded, but a large block of the text restates the compute-mode semantics already present in the schema, and the URL plus a long FV-status receipt hash consume space without helping invocation. Some content earns its place (transient processing, AP2 artifact output), but the duplication and provenance boilerplate weaken the structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explicitly redirects to describe_tool for it, while policy_parameters is an open nested object whose field names are only available via the manifest. For a tool whose real decision inputs are opaque, the description defers rather than supplies the missing detail. It is adequate for a compute-node wrapper but leaves the agent dependent on follow-up calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 ordering semantics for the parent arrays. The description adds essentially nothing about parameter meaning beyond what is already structured, and only defers policy_parameters field names 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.
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 for the 'collateral_mandate' function and names the upstream source (505-tokenized-collateral-eligibility-checker), which gives some orientation. However, it never states what the tool actually validates or computes about fund collateral, and the verb/resource is supplied almost entirely by the name and title. Among siblings like check_tokenized_collateral_eligibility, validate_collateral_swap_eligibility, and compute_stock_token_collateral_haircut, it does not clarify what distinguishes this validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The only directive present ('Use synthetic or anonymised inputs only') is an input constraint, not routing guidance. An agent is left to infer from the name alone when this tool is appropriate versus the many collateral-related siblings.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_ifrs17_csm_rollforward").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely non-obvious behavior: deterministic compute, server vs. browser delegation, transient processing with no storage/logging/retention, the synthetic-inputs-only constraint, and AP2 export with execution_hash. These are 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with duplicated phrases ('OpenChainGraph compute node' stated twice), a documentation URL, an FV-status receipt hash, and an instruction to call describe_tool for the output schema. Much of it serves provenance/verification rather than helping the agent decide or call the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry more of the return/validation semantics, but instead it defers to describe_tool. It does supply chaining metadata and artifact-export behavior, which is useful, yet the actual meaning of a validation result and the fields inside policy_parameters remain undisclosed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 does the heavy lifting. The description only re-explains the 'compute' modes already documented in the schema and gives no extra 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title identify the resource (IFRS 17 CSM roll-forward) and the verb is implied by 'Validator', but the body never states what the validation actually checks or produces. The opening line is largely a restatement of the title followed by infrastructure boilerplate, so an agent still cannot distinguish its function from siblings like check_ifrs17_risk_adjustment or track_ifrs17_loss_component_rollforward.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives chain-position context ('Consumes upstream artifacts from: art-177...', 'Output feeds: art-179...'), which implies when the tool fits in a workflow, but it never states when to use this versus an alternative or any exclusions. The compute-mode guidance repeats what the schema already says, so it does not add routing value.
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 attestationsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| artifact | No | A full ChainGraph artifact envelope carrying input_attestations[] and policy_parameters. | |
| policy_parameters | No | Artifact policy_parameters (if not passing a full artifact). | |
| input_attestations | No | The input_attestations[] array (if not passing a full artifact). |
TDQS
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.
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.
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.
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.
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.
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)BRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_mcp_authorization_metadata").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true and openWorldHint=false. The description goes beyond them by disclosing deterministic execution, transient processing with no storage/logging/retention, compute-mode routing semantics, and emission of an AP2 artifact with execution_hash for provenance. That is genuine added behavioral context, though the return surface itself is only gestured at via describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and poorly front-loaded: the actual purpose is buried under compute-node infrastructure boilerplate, an FV-status receipt URL, and a describe_tool self-reference. Several sentences (kernel registration, Cloudflare Workers, snapshot-not-subscription) are not needed for an agent to select or invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 returns; it partially does (AP2 artifact, execution_hash, chain provenance) and defers the rest to describe_tool. Combined with the missing statement of what validation checks are performed, this leaves an agent able to place the tool in a chain but not fully confident about its input/output contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 enum's own schema description. The chain-parent parameters (parent_hashes, parent_tool_ids) are only obliquely covered by the upstream-artifact sentence, so the description adds little beyond the already-complete schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 and resource (validate MCP authorization metadata per RFC 9728), and the upstream/downstream artifact chain (art-147 → art-148 → art-149) usefully situates it among siblings. However, the body immediately pivots to OpenChainGraph compute-node boilerplate and never states what is actually being validated (OAuth protected-resource metadata fields, JWKS binding, etc.). The functional purpose remains inferred 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The chain metadata ('Consumes upstream artifacts from… Output feeds…') implies when this tool belongs in a pipeline, and the 'Use synthetic or anonymised inputs only' line sets a real constraint. But there is no explicit when-to-use/when-not guidance against near neighbours such as validate_mcp_server_identity, check_mcp_registry_entry, or audit_mcp_oauth, and no stated prerequisites for calling it.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_mcp_server_identity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive behavioral context: transient input processing with no storage/logging/retention, server-side vs browser compute execution, GPU-node delegation, and export of an AP2 artifact with execution_hash for chain provenance. These are real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense wall of boilerplate: compute-node marketing, a URL, a long FV-status hash, and a receipt explanation that mostly does not help an agent invoke the tool. It is front-loaded with the title but buries the actual purpose in low-value text; several sentences do not earn their place for selection purposes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema (the description correctly delegates to describe_tool for output shape), and it covers compute behavior, privacy, and provenance chaining. However, for a validation tool among many similar validators, it omits what the attestation check actually evaluates, leaving the core task under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 in the schema. The description's compute-mode explanation largely repeats the schema property description rather than adding format, interaction, or ordering details beyond it. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title indicate an MCP server identity attestation validator, but the description body never explains what validation is actually performed (what checks, against what spec, producing what verdict). It opens with boilerplate about being an 'OpenChainGraph compute node' rather than a verb+resource statement, and never distinguishes this from close siblings like validate_mcp_server_json, lint_mcp_server_conformance, or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains compute modes but provides no when-to-use vs when-not guidance relative to the many sibling validators. The one constraint given ('Use synthetic or anonymised inputs only') is a data-handling caveat, not selection guidance. It notes the output feeds art-148 but doesn't say when an agent should call this versus alternatives.
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 GeneratorARead-onlyIdempotentInspect
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). Output schema: call describe_tool("validate_mcp_server_json").
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | No | Map of tool input element IDs to values (see manifest input_schema). Applied via AIN Bridge prefill. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly and idempotent annotations, the description discloses client-side execution, zero PII, zero network, input application via the AIN Bridge, and the returned artifact types. This adds meaningful context for an agent assessing safety and side effects. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, with the action and outputs stated first, a use case second, and behavioral notes third. The third sentence mixes widget rendering, privacy behavior, and a describe_tool instruction, which is slightly cluttered but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It covers purpose, the typical trigger, outputs, and privacy/network behavior, and points to describe_tool for the output schema. However, with no output schema and only a generic inputs object, the exact input payload and return structure must be discovered externally rather than being directly stated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 AIN Bridge prefill mechanism but does not provide concrete guidance on what values the generic inputs map should contain; the real semantics are deferred to the manifest input_schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action, resource, and validation basis: validate an MCP server.json against the 2025-12-11 schema and official registry publishing rules, returning findings, a readiness score, and an optional skeleton. It is clear about what the tool does, though it does not explicitly differentiate it from sibling validators and linters such as lint_mcp_server_conformance or 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit trigger: use when a developer wants to check a server.json before publishing to the MCP Registry. It does not name when to prefer a sibling tool or state exclusions, so it stops short of a 5.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_mcp_task_lifecycle").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: server vs browser compute delegation ('compute:"browser" forces client-side execution and returns a browser delegation URL'), transient non-storage of inputs, and the emission of an AP2 artifact with execution_hash for chain provenance. It lacks detail on the actual validation outcome format, but the added data-handling and compute-binding behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with repeated boilerplate ('OpenChainGraph compute node' twice), inline URLs, a full fv-status hash path, and duplicated compute-mode text already in the schema. The core purpose is not front-loaded; the reader wades through provenance metadata before understanding the function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description never explains what the validation returns or what invariant is enforced on the task lifecycle. It covers compute, chaining, and data handling, but for a validator tool the actual result semantics are the most important missing piece.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 binding but adds no syntax or semantics beyond what the schema 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the name/title ('MCP Task Lifecycle State Machine Validator') and then pivots into infrastructure boilerplate about OpenChainGraph compute nodes. It never states what a 'task lifecycle' is, which states or transitions are checked, or what a pass/fail means. It does not differentiate the tool from siblings like validate_mcp_server_json, validate_mcp_authorization_metadata, or lint_mcp_tool_definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 other MCP validators. The only soft guidance is 'Use synthetic or anonymised inputs only' and a mention that it consumes upstream artifacts from art-151-agent-obo-mandate-validator. The agent must infer the triggering conditions.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_mletr_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe, idempotent, closed-world read, but the description adds genuinely non-derivable behavior: determinism, transient processing with no storage/logging/retention, the synthetic-or-anonymised input constraint, server-vs-browser compute delegation for gpu:true, and an AP2 artifact with execution_hash emitted for provenance. That is real operational context beyond the annotation set, though some of it is infrastructure boilerplate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text opens by repeating the tool title verbatim, then spends most of its length on compute-binding internals, feed lists, a URL, and a 64-character FV-status filename. The front-loaded material is plumbing rather than task-relevant guidance, and the genuinely useful facts (transient processing, synthetic inputs only, hash export) are buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, zero-required-parameter tool with full schema coverage and no output schema, the operational envelope (compute modes, retention policy, provenance export, output discoverable via describe_tool) is reasonably covered. What is missing is the substantive half: what the validation checks and what fields the policy_parameters object expects, leaving the agent unable to construct a meaningful call from this description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the parameter burden and the baseline is 3. The description restates computed/server modes but adds nothing on parent_hashes/parent_tool_ids ordering semantics, and crucially leaves policy_parameters — the actual decision inputs — deferred to an external manifest, so the payload shape is documented nowhere reachable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name pair identifies the resource and the act (validate an MLETR/eBL record for conformance and enforceability), so the topic is legible. However, the body never says what is actually being validated — what a 'record' contains, which MLETR conditions are checked, or what distinguishes this from siblings such as check_digital_trade_rules, lookup_mletr_jurisdiction_adoption, or run_digital_trade_fit. It is a named tool with an unspecified verb surface.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement and no comparison to any of the many sibling compliance validators. The only routing signal is pipeline metadata ('Consumes upstream artifacts from: art-52-digital-trade-fit-diagnostic' and the downstream feed list), which hints at chaining but not at call conditions.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_mt700_lc_fields").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 the annotations cannot: inputs are processed transiently and not stored or logged, server-side vs browser delegation depends on kernel registration and gpu flags, and an AP2 artifact with execution_hash is exported for chain provenance. It stops short of describing what the validation output or error surface 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the purpose but then pads with repeated 'deterministic OpenChainGraph compute node' phrasing, a marketing URL, and a long FV-status hash blob that contributes nothing to tool selection. Much of the text is infrastructure boilerplate rather than decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and an undocumented nested policy_parameters object whose field names live in an external manifest, the description should compensate but does not — it defers to describe_tool and the manifest. An agent still lacks what to pass and what a valid/invalid LC field result looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already documented, and the description's compute explanation largely duplicates the schema. The policy_parameters object, which carries the actual decision inputs, is explicitly punted to 'the tool's manifest', so the description adds no real meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title pair conveys the verb (validate) and resource (MT700 LC fields), and the description classifies it as a compliance_mandate compute node. However, the description itself never says what it validates against (which rulebook, which field constraints, or what a failure means), so an agent cannot distinguish it from the many other validate_* siblings 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the compute-mode mechanics (auto/server/browser) and warns to use synthetic inputs, but gives no task-level when-to-use guidance: nothing about when this validator applies versus examine_lc_document_presentation, analyze_dc_vs_lc_cost_benefit, or check_mt101_coexistence_readiness. 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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_nft_metadata_art209").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real value beyond that: transient processing with no storage/logging/retention, deterministic execution, compute routing rules (auto/server/browser, gpu:true delegation, browser delegation URL), and the exported AP2 artifact with execution_hash. It does not describe the actual validation outcome (pass/fail or findings), so it is strong but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded with name and node type, which helps, but the body is heavy with infrastructure caveats and ends on a long FV-status SHA-256 hash plus a URL that contribute little to tool selection. Sentences are mostly dense boilerplate; trimming the provenance/receipt tail would sharpen it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry return-value semantics; it does note the AP2 artifact and execution_hash and points to describe_tool for the output schema. But for a validator with an opaque, manifest-defined policy_parameters object, the definition never explains what validation criteria are applied or what a success/failure result means, leaving a material gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 explanation largely duplicates the compute enum description already in the schema, and it does not clarify policy_parameters (whose field names it defers to 'the tool's manifest') or the parent_hashes/parent_tool_ids ordering beyond what the schema states. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and opening line name a clear verb+resource (NFT metadata validation within an OpenChainGraph compute node under compliance_mandate), so the agent knows the general domain. However, nothing states what 'validating' actually checks (schema conformance, royalty fields, provenance?), and there is no differentiation from the many sibling validate_* and lint_* tools. The bulk of the text is about compute mechanics rather than purpose, leaving the core action vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage instruction is the input-safety note 'Use synthetic or anonymised inputs only.' There is no statement of when to reach for this validator versus alternative validation/checking tools, no prerequisites, and no exclusion criteria. Compute-mode guidance explains mechanics, not selection.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_openids_homeowners_record").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 non-obvious behavior: transient processing with no storage/logging/retention, deterministic execution, compute-mode routing with browser delegation URLs, and AP2 artifact export with execution_hash. This is genuine 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Sentences are individually tight, but the description is dominated by infrastructure and provenance jargon before it conveys anything about the validation itself, and the FV-status hash/URL line is low-value for an agent choosing a tool. Front-loading of core purpose is weak.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no output schema, and no annotations on the domain logic, the description covers compute routing and provenance adequately but omits what the validator returns or what a passing/failing result means. It defers detail to describe_tool, which is a reasonable stopgap but leaves the core semantics thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum and adds no field-name or format guidance for policy_parameters beyond pointing at the 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('validate' + 'openIDS Homeowners Record') and labels the node a compliance_mandate compute node. However, it never states what the validation actually checks or what a homeowner record contains, and with dozens of validate_* siblings it does nothing to differentiate itself. 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.
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, and no condition under which validation is warranted. The only usage instruction is 'Use synthetic or anonymised inputs only,' which is an input-safety note, 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_openvex_statementOpenVEX Statement ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_openvex_statement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, and the description adds genuinely useful behavior beyond that: inputs are processed transiently and not stored/logged, compute:'browser' returns a delegation URL instead of executing, gpu:true always delegates, and an AP2 artifact with execution_hash is exported. The 'use synthetic or anonymised inputs only' constraint is a real operational caveat 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with plumbing that does not help selection: a documentation URL, a long FV-status hash path, and offline-verification commentary. The genuinely useful line (synthetic inputs only) is buried, and the opening repeats the title instead of front-loading what the tool validates.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-payload, no-output-schema tool that participates in an artifact chain, the description never says what a valid vs. invalid OpenVEX statement looks like, what the response contains, or how parent_hashes affect the result — it only points at describe_tool for the output schema. The compute and provenance context is present, but the task-critical semantics are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 prose duplicates the enum description. For policy_parameters, the actual decision payload, it only defers to 'the tool's manifest for field names', adding no field-level semantics. Baseline 3 is warranted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title and name ('OpenVEX Statement Validator: OpenChainGraph compute node'), then spends its text on infrastructure traits (compute binding, AP2 export, provenance) rather than saying what validating an OpenVEX statement actually entails or what it checks. An agent learns nothing about the validation verb beyond the name itself, and there is no differentiation from the many 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.
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 alternatives are named. The only routing hint is that it 'Consumes upstream artifacts from: art-136-slsa-provenance-verifier', which implies chaining order but not the conditions that should select this tool over siblings like validate_cyclonedx_sbom or verify_slsa_provenance.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_pacs008_party_completeness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 real behavioral context: compute mode delegation semantics (auto/server/browser, gpu:true always delegates), transient processing with no storage/logging, synthetic-input requirement, and AP2 artifact export with execution_hash. These go beyond the annotations and genuinely inform invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded via the title, but the body is a dense run-on that interleaves compute-binding details, privacy guarantees, provenance links, a long FV-status hash URL, and output-schema advice. Each element is individually useful but the composition is sprawling rather than cleanly ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four parameters (all optional), no output schema, and a nested policy_parameters object deferring to a manifest, the description covers chaining and compute behavior but omits what the validator actually evaluates and what the policy_parameters fields are. An agent knows how to call it structurally but not what to put in the decision payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 thoroughly; the description adds little beyond that. The critical policy_parameters object is left as 'See the tool's manifest for field names,' so the actual decision inputs are undocumented in both description and schema — a notable gap the description does not compensate for.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title state a specific verb+resource (validate pacs.008 party completeness), and the description identifies it as a 'compliance_mandate' compute node with named upstream (art-241) and downstream (art-246) artifacts, which helps sibling routing. However, the body never explains what 'party completeness' actually checks for a pacs.008 message, so the purpose beyond the title is largely restated infrastructure metadata rather than elaborated semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use vs alternative guidance, but the 'Consumes upstream artifacts from... Output feeds...' lines imply pipeline position, giving meaningful context for chaining in a ChainGraph workflow. No conditions for choosing this over the related lint_lei_payment_binding / lint_cbpr_structured_address siblings are stated.
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 commitmentsARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| artifact | No | A full ChainGraph artifact envelope carrying private_inputs[], policy_parameters, and optionally output_payload + audit_signature.compute_proof. | |
| disclosures | No | OPTIONAL authorized-verifier disclosure packages, keyed by pointer, for the disclosed-verified path. | |
| compute_proof | No | audit_signature.compute_proof (if not passing a full artifact). | |
| output_payload | No | Artifact output_payload (if not passing a full artifact). | |
| private_inputs | No | The private_inputs[] array (if not passing a full artifact). | |
| policy_parameters | No | Artifact policy_parameters (if not passing a full artifact). |
TDQS
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.
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.
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.
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.
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.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_pvp_settlement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world. The description adds genuinely non-obvious behavior: transient server-side processing with no storage/logging/retention, server-vs-browser execution routing, and export of an AP2 artifact carrying execution_hash for chain provenance. That is real added context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core operational facts are front-loaded, but the opening wastes a sentence on a near-duplicate ('OpenChainGraph compute node' stated twice) and the body ends with a URL plus a long FV-status receipt hash that consumes attention without helping invocation. Some trimming would improve signal density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validator with no output schema, the description should at least characterize the verdict it produces; instead it delegates the return shape to describe_tool and never says what a pass/fail means. It compensates well on compute routing, provenance chaining, and data handling, but the actual decision semantics are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 carry the parameter documentation, including the compute enum. The description restates the compute modes rather than extending them, and passes policy_parameters off to 'the tool's manifest' without naming fields, so it adds 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (OpenChainGraph settlement_mandate compute node) and the artifact it exports, so an agent can infer this validates some multi-currency PvP settlement flow. But it never states what the validation actually decides or checks — the opening is largely a restatement of the title plus infrastructure boilerplate, not a specific verb+outcome. Sibling differentiation comes only obliquely via the upstream artifact list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives deployment-mode guidance (compute auto/server/browser, gpu:true always delegates) and a hard input constraint (synthetic/anonymised only), plus names upstream artifacts it consumes. However, it never says when to choose this tool over alternatives such as validate_canton_dvp_atomicity, classify_settlement_finality, or run_tokenized_settlement_fit, so selection 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.
validate_qfc_recordkeeping_fileQFC Part 371 Recordkeeping File ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_qfc_recordkeeping_file").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 useful context beyond that: inputs are processed transiently and not stored or logged, computation is deterministic, and an AP2 artifact with execution_hash is emitted for provenance. However this text is generic OpenChainGraph boilerplate applied to every node rather than insight into this validator'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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dominated by node-runtime boilerplate (compute binding, Cloudflare Workers, FV-status receipt URL) that is irrelevant to selecting or calling this specific validator. The one sentence that names the resource appears first, but the remaining content does not earn its place for this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 what a caller gets back, yet it only mentions an AP2 artifact export and defers the output shape to describe_tool. It says nothing about the validation verdict itself (pass/fail, findings, severity). For a compliance validation tool with nested policy_parameters, this is a significant gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and all four parameters (compute, parent_hashes, parent_tool_ids, policy_parameters) carry their own descriptions, so the schema does the heavy lifting. The description adds only the compute-mode restatement, which duplicates the enum description in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title ('QFC Part 371 Recordkeeping File Validator') are the only statements of what the tool does, and the body largely restates that the node is a 'compliance_control' compute node. It never says what a QFC Part 371 recordkeeping file is or what aspect of it is validated (completeness, fields, format). No differentiation from siblings such as validate_fdic370_output_file, despite the name carrying the whole purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 validator versus the many other validate_* siblings, nor any stated prerequisites or when-not-to-use. The only conditional content is about compute routing ('auto' vs 'browser'), which is invocation plumbing, not usage guidance. 'Use synthetic or anonymised inputs only' is an input constraint, not a use-case rule.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_regf_call_frequency").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnly/idempotent/non-destructive/closed-world, the description still adds real behavioral context: server-side vs browser execution, the browser delegation URL, transient non-retention of inputs, and export of an AP2 artifact with execution_hash for provenance. These are traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is front-loaded, but the body is boilerplate-heavy and partially redundant ("OpenChainGraph compute node" and "Deterministic OpenChainGraph compute node" in consecutive sentences). The FV-status hash paragraph and URL 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validation tool with a nested, free-form `policy_parameters` object and no output schema, the description should clarify what inputs the decision function needs; instead it says only "See the tool's manifest for field names." It does correctly point to describe_tool for the output schema and names the downstream consumer, so the gap is partial rather than total.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the enum values for `compute` and the roles of parent_hashes/parent_tool_ids/chaining are already documented in the schema. The description adds nothing about parameter formats or required fields, and notably no guidance on what keys `policy_parameters` must contain (it 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ("Reg F Call-Frequency Presumption Validator") and labels it a "compliance_mandate" compute node, but never says what the validation actually checks about Reg F call-frequency presumptions. An agent learns it is a deterministic compute node, not what decision it makes. It distinguishes itself from generic compute siblings only by 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.
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 an input-safety rule, not selection guidance. There is no statement of when to choose this validator over siblings like art-403-check-debt-validation-notice or other Reg F tools; the pointer to the downstream artifact implies context but does not say when to call it.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_royalty_split").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations: it explains the compute-mode resolution (auto/server/browser, gpu:true delegation), that inputs are processed transiently and not stored or logged, and that an AP2 artifact with execution_hash is exported for chain provenance. Annotations already cover the read-only/idempotent safety profile, and nothing here contradicts them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Contains duplicated phrasing ('OpenChainGraph compute node' twice) and an inline FV-status hash plus a URL that add bulk without aiding invocation. The genuinely useful compute-mode caveat is buried mid-paragraph behind infrastructure preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description mitigates this by directing the agent to describe_tool for the output shape, and it discloses the artifact/provenance behavior. What remains missing is the semantic content of the decision inputs and what 'valid' means, which is material for a validator with an opaque policy_parameters object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify 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 merely restates the compute mode semantics. Crucially, policy_parameters — the actual decision inputs — is opaque in both the schema and the description, which defers to an off-tool 'manifest' rather than adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a verb and resource ('Royalty Split Validator') and labels the node class ('compliance_mandate'), but never says what a royalty split is validated against or what the decision function checks. The name itself already carries the substance, so the description largely restates the title plus infrastructure boilerplate rather than describing 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.
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-safety constraint rather than a when-to-use rule. It never says when to pick this over siblings like calculate_erc2981_royalty, validate_nft_metadata_art209, or validate_tempo_token_compliance, nor are prerequisites or exclusions stated.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world. The description adds genuinely useful extra behavior: determinism, server-vs-browser delegation, transient/no-retention input handling, and export of an AP2 artifact with execution_hash for provenance. It still says nothing about what a failed validation looks like or what the artifact contains, so it is solid 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is boilerplate-heavy: repeated 'OpenChainGraph compute node' phrasing, a raw URL, and a long FV-status hash string that consume most of the payload. The actual purpose of the tool is never front-loaded, so size is spent on infrastructure rather than the reader's first question.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a four-parameter, no-output-schema validation node with nested policy_parameters, the description covers execution mode, chaining inputs and that an AP2 artifact is returned, which partially compensates for the absent output schema. It is still silent on the validation criterion itself and on failure/error outcomes, leaving a material gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum semantics and the chaining purpose, and explicitly defers policy_parameters field names to the 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.
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 restates the title, but never says what a signature agent card validation actually checks or verifies. The only concrete signal is 'Consumes upstream artifacts from: art-130-signature-directory-validator', which hints at chaining but not at the validation semantics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is operational plumbing: how compute modes route work and 'Use synthetic or anonymised inputs only'. There is no statement of when to call this tool versus close siblings such as validate_signature_directory, verify_a2a_agent_card, or validate_a2a_trust_chain, so 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.
validate_signature_directoryHTTP Signatures Directory ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: the auto/server/browser compute binding, browser delegation semantics for gpu:true nodes, and the fact that inputs are processed transiently and not stored or logged. The material gap is that it never says what a validation result or failure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense, unbroken wall of infrastructure boilerplate: 'Deterministic OpenChainGraph compute node' is repeated, and large portions cover provenance receipts and FV-status URLs rather than how to call the tool. The genuinely useful operator guidance is buried rather than front-loaded, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter validation tool with annotations and no output schema, the description covers execution mode, data-handling posture, and chain position. What it omits is the core semantic: what a 'signature directory' is being checked against and what the returned AP2 artifact contains, which matters since there is no output schema to fall back on.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all four parameters, including the compute enum and the parent_hashes/parent_tool_ids chaining semantics. The description restates the compute modes but adds no field-level meaning (e.g., what policy_parameters keys the validator expects). Baseline 3 is correct 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title-phrase 'HTTP Signatures Directory Validator' names a resource and a validation act, and the upstream/downstream artifact references hint at its role in a chain. However, the description never explains what validating a signature directory actually entails, and it does nothing to distinguish itself from near-identical siblings such as validate_signature_agent_card or check_jwks_pinned_directory. 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied through pipeline placement ('Consumes upstream artifacts from art-129...', 'Output feeds: art-131...') and the directive 'Use synthetic or anonymised inputs only.' There is no explicit when-to-use guidance, no when-not-to-use, and no naming of an alternative sibling that an agent could route to instead.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_slate_report_fields").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them with genuinely useful behavioral context: server vs browser compute delegation, the fact that inputs are processed transiently and not stored or logged, the synthetic-inputs-only constraint, and the AP2 artifact with execution_hash export. It does not disclose what happens on invalid fields, but the added operational detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening clause merely restates the title, then the text pivots into platform boilerplate that is largely identical across every node in this server. The 'Open at' URL and the FV-status receipt-hash sentence consume real estate without helping an agent decide or invoke, and the actual validation semantics are never front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 return value, and it only mentions an AP2 artifact, not the validation result itself (fields checked, error/warning shape). For a 4-parameter validation tool with nested policy_parameters, the core question an agent has — what does this check and what comes back — is unanswered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 is 3. The description only reinforces the chaining concept via the exported execution_hash and defers field names to the manifest, adding little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 SLATE securities-loan report fields), so an agent can broadly place it next to siblings like run_slate_reporting_fit. However, the description body never says what is actually validated, against what rule set, or what constitutes a pass/fail, so the purpose is only implied 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.
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 siblings such as run_slate_reporting_fit or the other validate_* tools, and no prerequisites for the caller. The only selection logic offered concerns compute mode, which is transport mechanics rather than task-level usage.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_spdx_sbom").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, warns to use only synthetic or anonymised inputs, and explains the auto/server/browser compute delegation semantics plus the AP2 execution_hash export. These are meaningful 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The decision-relevant identity is front-loaded in the title, but a large share of the body is ChainGraph infrastructure boilerplate (FV-status URL, receipt hashing, artifact provenance) that does not help an agent select or call the tool. It is not bloated to the point of confusion, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validator with 4 parameters and no output schema, the agent needs to know what is being validated against and what a result means. The description instead defers to describe_tool and spends its budget on compute plumbing, leaving the actual validation domain (SPDX/CRA Annex I requirements) and pass-fail semantics unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 narrative mirrors the schema's own enum description and adds no new syntax or constraint detail, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title supplies a clear verb+resource (validate an SPDX SBOM) and the description adds the EU CRA Annex I framing, but the body never explains what validation actually covers — SPDX version, required fields, or the compliance checks performed. It also fails to distinguish itself from the sibling validate_cyclonedx_sbom, which would be the natural alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 signal is 'Output feeds: art-139-cra-annex1-completeness-checker', which implies a pipeline position but not a selection condition. No sibling 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.
validate_tempo_token_complianceTempo Stablecoin Issuance ComplianceCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_tempo_token_compliance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 logged or retained, that compute:'auto' runs server-side while 'browser' returns a delegation URL, and that a chained AP2 artifact with execution_hash is exported. All of this is consistent with the annotations and adds real context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense paragraph front-loads the title but then spends most of its length on reusable infrastructure boilerplate (compute binding, FV-status receipt, 'Open at:' URL) that recurs across sibling tools. The sentence that should matter — what the validation checks — is absent, so length is not earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Provenance, data-handling, and compute-mode behavior are covered thoroughly, and with no output schema the artifact/execution_hash note substitutes adequately. However, the core compliance decision logic and the policy_parameters field names are left undefined, so the definition is not complete for actually invoking the tool meaningfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 echoes the compute-mode semantics and parent_hashes chaining already in the schema, and it defers the actual decision inputs to 'the tool's manifest for field names' while policy_parameters remains an untyped open object — a gap neither field resolves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Tempo Stablecoin Issuance Compliance: OpenChainGraph compute node (compliance_mandate)') and then describes execution machinery, but never states what compliance rule the tool actually validates — reserve attestation, AML typology, or something else. An agent knows where the node sits in a chain but not what it decides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 describes compute modes, but offers no when-to-use guidance versus siblings such as run_tempo_fit_diagnostic, validate_tempo_zone_disclosure, or precheck_reserve_attestation. Presence in a chain is implied via upstream/downstream artifact lists, not explained as selection criteria.
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 AttestationBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_tempo_zone_disclosure").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the burden is lower, yet the description adds real value: transient processing (not stored, logged, or retained), the export of an AP2 artifact with execution_hash for provenance, and the parent-hash chaining behavior. The compute-mode detail largely duplicates the schema, but the data-handling and provenance disclosures 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is front-loaded acceptably, but the description is bloated with infrastructural preamble (Cloudflare Workers, browser delegation URL) and trailing noise (a live URL and an FV-status file hash) that do not help an agent invoke the tool. Several sentences duplicate schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does cover the return contract (an exported AP2 artifact with execution_hash), provenance chaining, upstream/downstream linkage, and data-handling guarantees. What remains missing is any description of the actual validation logic, which an agent would need to trust the tool's result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 behavior already documented in the schema and adds nothing about parent_hashes/parent_tool_ids ordering or what policy_parameters fields contain (it defers to 'the tool's manifest'), so it does not meaningfully enrich parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('Tempo Zone Selective-Disclosure Attestation', an OpenChainGraph attestation_mandate node) but never states what the attestation actually validates or decides. It spends most of its length on compute-binding mechanics rather than the tool's substantive purpose, so an agent knows the category but not the specific check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It positions the tool in a pipeline (consumes art-38-tempo-onchain-aml, feeds cry-01-zk-compliance-proof-generator) and imposes an input constraint ('use synthetic or anonymised inputs only'). However there is no explicit when-to-use versus siblings like validate_canton_selective_disclosure or validate_tempo_token_compliance, 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.
validate_tfr_travel_rule_batchTFR Travel-Rule Batch ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_tfr_travel_rule_batch").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses meaningful behavior: transient processing with no storage or logging, the requirement to use synthetic/anonymised inputs, server-vs-browser compute delegation rules, gpu:true always delegating, and that an AP2 artifact with execution_hash is exported for provenance. This is substantial 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is boilerplate-heavy and redundant — 'OpenChainGraph compute node' and 'Deterministic OpenChainGraph compute node' appear back-to-back, and the long compute-mode sentence duplicates the schema description verbatim. Front-loaded enough, but much of the payload is template noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 validation returns, but it only points to describe_tool and covers execution mechanics. It is adequate on execution/provenance and pipeline position, but leaves the actual validation result and travel-rule semantics unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the compute enum is fully documented in the schema itself, so the description adds little parameter meaning. Baseline 3 applies; the description does not clarify policy_parameters fields beyond deferring to the manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title names a specific resource (TFR Travel-Rule Batch Validator) but the description largely restates it ('OpenChainGraph compute node (compliance_mandate)') and never explains what the batch validation actually checks or produces. An agent can identify the domain from the title but cannot tell what the tool computes beyond 'deterministic compute node'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs when-not guidance and no named alternative among the many validate_* siblings. The artifact chaining lines ('Consumes upstream artifacts from art-98...', 'Output feeds: cry-04-merkle-batch-verifier') give pipeline context 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.
validate_tip20_memo_commitmentTIP-20 Memo/Commitment ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_tip20_memo_commitment").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive safety, but the description adds real behavioral context beyond them: server-side vs browser delegation semantics per compute mode, transient non-retained processing, the 'synthetic inputs only' constraint, and the AP2 artifact with execution_hash returned for chain provenance. It does not describe auth requirements or the actual validation logic, but the compute/retention 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is bloated with near-duplicate phrasing ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and buries the substance behind a raw URL and a long FV-status hash. The core purpose statement 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.
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 description should clarify what belongs in policy_parameters and what result to expect. It partly covers the return shape (AP2 artifact with execution_hash) and delegates field names to a manifest, but leaves the primary input contract and the validation outcome underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 adds nothing beyond pointing at the schema and the manifest ('See the tool's manifest for field names'), so it neither compensates nor degrades.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title states a clear verb+resource (validate a TIP-20 memo commitment), but the description never explains what 'memo commitment' validation actually means or what a verdict looks like. It largely restates the title and then pivots to infrastructure boilerplate ('OpenChainGraph compute node (compliance_mandate)'), so it is vague rather than tautological. It does not distinguish itself from siblings like screen_tip20_transfer_batch 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.
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 the sibling TIP-20 screening/validation tools, and no stated prerequisites or input conditions. The compute-mode text explains execution routing, not tool selection. An agent is left to infer usage 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.
validate_tokenized_security_lifecycleTokenized Security Lifecycle ValidatorARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_tokenized_security_lifecycle").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 value beyond them: transient processing with no retention, browser-delegation semantics for gpu:true, and AP2 artifact export with execution_hash. It is weaker on auth/permission requirements, but the added operational 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-node and transient-processing facts are front-loaded, but the text is padded with a marketing URL and a long FV-status sentence ('a snapshot, not a subscription...') whose value to tool selection is marginal. Several sentences do not clearly earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex nested-object tool with no output schema (it redirects to describe_tool), the description covers compute modes and provenance adequately, but leaves policy_parameters field names to an external manifest and does not explain what a successful validation returns. The agent is left with a real gap at the point of invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all four parameters already have detailed descriptions; the description mostly echoes the compute-mode semantics. It does add chaining intent for parent_hashes ('consumes upstream artifacts'), but for the core policy_parameters it defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name and text identify a specific verb+resource (validate the lifecycle of a tokenized security) and frame it as a deterministic OpenChainGraph compute node for compliance_mandate. It names upstream provenance (510-digital-asset-regulatory-classifier) but does not differentiate itself from the many sibling validate_* token/tempo compliance tools, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the compute-mode selection (auto/server/browser, gpu delegation) and states 'use synthetic or anonymised inputs only', which is genuine usage context. However it never says when to choose this tool over alternatives such as validate_tempo_token_compliance or run_tokenized_settlement_fit, leaving the routing decision to inference.
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 ValidatorBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 goes further with real value: transient, non-retained input processing, a synthetic-inputs-only warning, deterministic execution, and an AP2 artifact with execution_hash for provenance. This is substantive behavioral context beyond the annotations, though it never describes what validation output 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool's identity, but a large share of the text is infrastructure boilerplate (kernel registration, Cloudflare Workers, FV-status receipt, offline verification) that does not help an agent select or invoke the tool. Several sentences do earn their place (data handling, chaining, downstream feed), so it is bloated rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the return semantics, yet it only says an AP2 artifact with execution_hash is exported and never states what the conformance result contains (pass/fail, error codes, EN 16931 rule violations). The compute/chaining mechanics are well covered, but the actual validation contract is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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). The description restates compute-mode behavior but adds nothing about policy_parameters contents, instead 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/lede names a specific verb+resource: ViDA EN 16931 e-invoice conformance validation, which is a real purpose an agent can grasp. It does not, however, differentiate itself from close siblings such as validate_einvoice_format, verify_einvoice_vat_calc, or validate_einvoice_batch, so the boundary 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.
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 only routing hint is an output-feeds note ('art-160-vida-drr-transaction-reporter') and the compute-mode discussion, neither of which tells the agent when this validator is the right choice over its e-invoice siblings.
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 ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_w8_series_structural").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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), so the bar is lower, and the description still adds real context: transient processing with no storage/logging/retention, server-vs-browser compute delegation for gpu nodes, and export of an AP2 artifact carrying an execution_hash. It does not, however, explain what validation result the agent receives or any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is back-loaded with template boilerplate, a raw URL, a long FV-status file path and hash, and a 'call describe_tool(...)' pointer, none of which help an agent decide whether or how to invoke it. The one useful sentence (transient processing, synthetic inputs) is buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a validation tool with zero required parameters and no output schema, the description should at least sketch what constitutes a valid/invalid W-8 structure and what the response contains. Instead it leaves the decision-function inputs to an external manifest and the output to describe_tool, so the agent cannot form a clear picture of the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 only marginal param context (the upstream artifact art-268) and explicitly defers the decision-function field names to 'the tool's manifest' rather than clarifying the opaque policy_parameters object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'W-8 Series Structural Validator' names a resource and an action, but the description itself never explains what 'structural' validation of W-8 series forms means or what it checks. The text is dominated by infrastructure boilerplate about compute nodes, artifact chaining and an FV-status snapshot, which restates the name/title rather than clarifying the tool's actual function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 validate_* tools, and no prerequisites or exclusions are stated. The only operative constraint, 'Use synthetic or anonymised inputs only,' is a data-handling 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.
validate_x402_deferred_handshakex402 Deferred-Scheme Handshake ValidatorCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("validate_x402_deferred_handshake").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already declaring readOnly/idempotent/non-destructive, the description adds real operational context: transient processing with no storage/logging, a synthetic-inputs-only constraint, server vs browser compute modes with delegation URLs, and an exported AP2 artifact carrying execution_hash. That materially 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded text is boilerplate (the title is restated, 'Deterministic OpenChainGraph compute node' appears twice), and the /fv-status/ hash URL and offline-receipt sentence consume space without helping invocation. The genuinely useful compute-mode and privacy details are buried mid-paragraph.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and while the description discloses privacy handling, compute delegation, and AP2 export with execution_hash, it omits what the validation returns or how failures surface. For a 4-parameter node with a nested policy_parameters object, that leaves a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 largely restates the compute-mode behavior already in the schema's enum description and adds no extra semantics for the parent-hash ordering or policy_parameters field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name indicate this validates an x402 deferred-scheme handshake, and the description frames it as a deterministic OpenChainGraph compute node in the compliance_control family. However, the body never states what the handshake validation actually checks or produces (valid/invalid, errors, digest), so the agent must infer the core 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists upstream/downstream artifacts and a URL, but gives no when-to-use or when-to-prefer-an-alternative guidance against siblings like check_x402_domain_nonce_window, verify_webbotauth_signature, or recompute_x402_eip712_digest. The agent gets provenance context 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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| claims | Yes | Claim key-value pairs for credentialSubject (required, at least one entry). | |
| pointer | No | RFC 6901 JSON pointer where the attestation's claims sit in a consuming chain's policy_parameters. Default: "/subject_claims". | |
| subject_id | No | Credential subject id (DID or any identifier string). Default: "did:example:subject". | |
| valid_from | No | ISO 8601 validFrom. Default: now. | |
| valid_until | No | ISO 8601 validUntil. | |
| credential_type | No | Type appended to VerifiableCredential (e.g. "MembershipCredential"). |
TDQS
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.
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.
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.
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.
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.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_a2a_agent_card").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 traits: transient processing with no storage or logging, compute-mode routing (auto/server/browser), browser delegation for gpu:true nodes, and an AP2 export with execution_hash for chain provenance. This is real added context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a long boilerplate block dominated by chain-graph URLs, artifact IDs, and FV-status receipt text, with the actual operation buried. It is not front-loaded with the one thing an agent needs (what verification does), and much of the content is irrelevant to invocation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 defers return format to describe_tool(), so it does not fully describe what the verification produces. It does cover compute behavior, provenance chaining, and no-retention guarantees, which partially compensates, but the core verification semantics remain unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds little parameter-level meaning beyond repeating the compute-mode semantics already present in the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first clause establish a verb+resource ('A2A Agent Card Validator & Extension Checker'), but the body never elaborates on what verification actually inspects (schema? extensions? signature?) and offers no differentiation from the near-identical sibling 'validate_a2a_agent_card'. The remaining text is infrastructure boilerplate rather than a 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.
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 given, which is a notable gap given siblings like validate_a2a_agent_card and validate_a2a_trust_chain. The only usage constraint ('Use synthetic or anonymised inputs only') concerns data 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.
verify_acdc_delegation_chainACDC Delegation Chain VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_acdc_delegation_chain").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/no-destructive, so the bar is lower, and the description adds genuinely useful behavior: inputs are processed transiently and 'not stored, logged, or retained', and browser delegation returns a URL instead of computing. These are facts not derivable from the annotations. It stops short of describing the AP2 artifact's contents beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dense and poorly front-loaded: the purpose is buried after a near-duplicate sentence ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and a full 64-character hash and URL fragment consume space with little invocation value. Several clauses (offline FV-status receipt, snapshot-not-subscription) 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description defers return shape to describe_tool('verify_acdc_delegation_chain') and mentions an exported AP2 artifact with execution_hash, which partially compensates. But the verification result semantics, required inputs, and pass/fail signal are absent, leaving an agent without enough to interpret outcomes for a complex compute node.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 baseline 3 applies. The description's compute-mode prose largely duplicates the 'compute' enum description rather than adding syntax, defaults, or inter-parameter relationships for parent_hashes/parent_tool_ids/policy_parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource ('ACDC delegation chain') and calls itself a verifier, but the actual verification semantics are never stated. Most of the text is devoted to compute-mode mechanics, transient processing, and provenance metadata, which obscures the core purpose. An agent must infer that it validates a delegation chain from the title rather than from an explicit 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives real operational guidance for compute mode ('auto' vs 'browser', gpu:true always delegates) and warns 'Use synthetic or anonymised inputs only'. However, it never explains when to choose this tool over the many sibling verifiers (verify_did_webvh_log, verify_input_attestations, verify_ap2_mandate_chain), which is the key selection decision for an agent.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_address_migration_batch").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag it as readOnly/idempotent/non-destructive, so the safety profile is clear. The description adds valuable execution context: compute modes (auto/server/browser), client-side delegation for gpu:true nodes, transient/no-retention processing with a 'use synthetic inputs' warning, and AP2 artifact output with execution_hash. It does not explain scoring semantics or failure modes, but this is well beyond re-stating annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a dense wall of metadata: deadline framing ('Hardest deadline tool in suite by proximity'), provenance-promo boilerplate ('a snapshot, not a subscription; this receipt verifies offline'), and URLs. This crowds out the actual purpose statement and makes the invocation-relevant text hard to find. Front-loading favors the marketing framing over what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with a nested policy_parameters object and no output schema, the description covers execution behavior (compute modes, data handling, artifact export) but omits what 'verified' means, what the response contains at a high level, and how the deferral to describe_tool('verify_address_migration_batch') resolves the rest. Adequate but incomplete for an agent trying to call it correctly without a round trip.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and fully documents compute, parent_hashes, parent_tool_ids, and policy_parameters including the compute-mode enum. The description reiterates the compute-mode behavior but adds nothing about parent_hashes ordering, policy_parameters field names (deferred to 'the tool's manifest'), or expected content. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title indicate it verifies ISO 20022 structured-address migration batches, and the description says it is a 'Deterministic OpenChainGraph compute node (compliance_mandate)' for the SWIFT CBPR+ mandate. However, the description never states the actual operation in the body (e.g. 'verifies a batch of addresses against ISO 20022 structured-address rules'), relying almost entirely on the title and tool name. The release deadline and provenance metadata dominate over the purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool vs. siblings such as lint_cbpr_structured_address, verify_migration_completeness, or lint_fedwire_structured_address. The only forward references are to downstream consumers ('Output feeds: ...'), not to alternatives or 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.
verify_anchored_extractAnchored Extract VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_anchored_extract").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuinely useful behavior: compute:'auto' server-side vs compute:'browser' delegation, gpu:true always delegating, transient non-stored/non-logged processing, and an exported AP2 artifact with execution_hash. It does not contradict the readOnly annotation (export is a generated artifact, not a mutation).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with a duplicated 'OpenChainGraph compute node' phrase, then pads with a URL and a long FV-status hash string that consume attention without helping tool selection. Useful content exists but is buried in boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly redirects to describe_tool for the output contract and covers compute modes, privacy and provenance. However, for a 'verify' tool the actual semantics of the verification and success/failure outcome are absent, leaving a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 little parameter-level meaning beyond the compute-mode enum 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description mostly restates the title ('Anchored Extract Verifier: OpenChainGraph compute node') and then pivots to execution-mode boilerplate. It never says what an 'anchored extract' is or what the verification actually checks, so an agent cannot distinguish the substantive purpose from sibling verify_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 and no named alternatives among the many verify_* siblings. The only directive is a constraint ('Use synthetic or anonymised inputs only'), which is context but not usage routing.
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 GuardrailARead-onlyIdempotentInspect
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-01-ap2-mandate-chain-validator, art-60-agent-economy-runtime-fit-diagnostic, art-61-x402-batch-settlement-reconciler. Output feeds: art-01-ap2-mandate-chain-validator, art-30-agent-commerce-conformance-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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_ap2_payment_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 that: inputs are processed transiently and not stored or logged, execution is deterministic, browser mode returns a delegation URL instead of computing, and an execution_hash artifact 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose statement is front-loaded, but the body then dumps raw infrastructure detail, artifact IDs, a long URL and a full SHA-256 snapshot reference. Several sentences (fv-status snapshot caveat, output-schema pointer) could be trimmed or deferred, making it longer than needed for selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-parameter compute node with no output schema, the description covers compute modes, privacy, chaining and versioning, and points to describe_tool for the output shape. What it omits is the substance of the verification itself – the conditions under which a receipt is judged valid or rejected – which is the key thing an agent needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 default but adds no new syntax or constraints for the chaining/hash parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 (verify an AP2 PaymentReceipt, act as HNP guardrail) and it distinguishes itself from siblings by emitting an AP2 artifact with execution_hash for chain provenance. However, much of the body is about compute plumbing rather than what the verification actually decides, so the core purpose is clear but partly buried.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives context for the compute modes (auto/server/browser, gpu:true always delegates) and an input constraint (use synthetic or anonymised inputs only), plus upstream/downstream artifact relationships. But it never states when to use this verifier versus adjacent tools like validate_ap2_mandate_credential or validate_ap2_mandate_chain, leaving the routing decision implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_close_posting_lineageClose Posting LineageCRead-onlyIdempotentInspect
Close Posting Lineage: OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node. By default (compute:"auto") inputs are computed server-side on Cloudflare Workers for gpu:false nodes with a registered kernel; compute:"browser" forces client-side execution and returns a browser delegation URL instead. gpu:true nodes always delegate to the browser. Inputs are processed transiently to compute the response and are not stored, 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-692-close-posting-lineage.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_close_posting_lineage").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: inputs are processed transiently and not stored or retained, an AP2 artifact with execution_hash is exported, and gpu:true nodes always delegate to the browser. However, much of it duplicates the compute-mode enum in the schema, and it never says what a 'verify' result means or what failure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is boilerplate-heavy and back-loaded with a URL and a long FV-status hash path that an agent cannot act on. The first sentence merely restates the title, and the actual function of the tool never appears.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no described return values, a nested free-form policy_parameters object, and no explanation of what 'close posting lineage' verification produces, the description leaves the agent unable to predict outcomes. It covers infrastructure concerns but not the tool's actual contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 syntax or meaning beyond the schema, and policy_parameters is punted to '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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name promises verification of 'close posting lineage', but the description never says what is being verified or against what. Instead it restates the tool as an 'OpenChainGraph compute node (compliance_mandate)' — essentially metadata tautology — and spends its text on compute-mode 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.
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 the many sibling verify_* tools, and no prerequisites, triggers, or exclusions. The only usage-adjacent line, 'Use synthetic or anonymised inputs only', is an input 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.
verify_content_credential_signatureContent Credential Signature VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavior beyond them: deterministic execution, server-vs-browser compute delegation, transient non-retention of inputs, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long and front-loads redundant framing ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node') before the useful compute/privacy details. The trailing FV-status URL with a full hash string is noise that pushes the actionable content out of the opening position.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with chaining, artifact export, and no output schema, the description covers compute modes, data handling, and provenance lineage adequately. It does not, however, explain what the verification actually evaluates or how policy_parameters feed the decision function ('See the tool's manifest for field names' leaves the 0-required-param contract opaque).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, setting baseline at 3. The description's compute-mode explanation largely duplicates the enum description already in the schema; the only added value is the chaining context around parent_hashes and the upstream/downstream artifact framing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ('Content Credential Signature Verifier: OpenChainGraph compute node') and then spends its length on platform mechanics rather than stating what the tool verifies or produces. The core operation (verifying a content credential signature) is only implied by the name, though the upstream 'art-123-c2pa-manifest-validator' and downstream 'art-125-provenance-ingredient-tree-resolver' references do give some positional context among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or named alternative among the many sibling verify_* tools. The only directive is a data-handling rule ('Use synthetic or anonymised inputs only'), which constrains inputs but does not help an agent decide to select 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.
verify_conversion_receiptConversion Receipt VerifierARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_conversion_receipt").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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, deterministic execution, server-side vs browser delegation rules, and export of an AP2 artifact carrying execution_hash for chain provenance. That is meaningful disclosure not available 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is somewhat buried under standardized boilerplate, and the FV-status hash plus inline URL are verbose. The content is relevant but not tightly front-loaded, with the central 'what this verifies' statement diluted by generic node preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description compensates reasonably: it explains the artifact exported (AP2 with execution_hash), the data-handling guarantees, and points to describe_tool for the return shape. The main gap is the absence of an explicit statement of what a successful verification means.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 narrative largely restates the schema's own enum description, so it adds little beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title combined with the description establish that this is a verification compute node for a conversion receipt, and it names the upstream artifact source (art-191-conversion-receipt-builder). However, the actual verification semantics are implied rather than stated outright — the bulk of the opening is compute-node boilerplate rather than a plain 'verifies X' statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a useful constraint ('use synthetic or anonymised inputs only') and explains compute-mode selection, but does not state when to use this tool over siblings like verify_ap2_payment_receipt or verify_execution_hash. Usage context is implied through the upstream-artifact reference rather than an explicit 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.
verify_did_webvh_logdid:webvh DID Log VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_did_webvh_log").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavioral context beyond them: transient processing ('not stored, logged, or retained'), server-vs-browser execution with a delegation URL, and an exported AP2 artifact carrying execution_hash. What is still missing is the behavioral shape of the verification itself (pass/fail semantics), which 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with platform boilerplate — a marketing URL, an FV-status hash path, artifact IDs, and a redundant restatement ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'). Front-loading is weak because the actual operation is never stated; several sentences do not earn their place for an invoking agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a verification tool with no output schema, the description should convey what a result means (valid/invalid, failure detail). Instead it relies on a pointer to describe_tool and devotes space to chain-provenance and FV-status trivia. An agent can invoke it correctly but cannot anticipate 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with four parameters, so the schema already documents compute modes, the parent_hashes/parent_tool_ids pairing, and policy_parameters. The description's compute discussion repeats the schema, and for policy_parameters it only defers with 'See the tool's manifest for field names', adding no semantic detail beyond the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title identify the operation (verifying a did:webvh DID log) and the description places it in a provenance chain ('consumes upstream artifacts from art-04-agent-identity-attestation-checker', 'output feeds art-285-acdc-delegation-chain-verifier'). However, the description never states what the verification actually does — no mention of DID log entries, SCID/hash-chain checking, or what constitutes a valid log. It is largely platform boilerplate rather 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear rules for the compute parameter ('auto' vs 'browser', gpu:true always delegates) and a caution to use synthetic inputs, which is genuine usage guidance. But it offers no when-to-use guidance relative to siblings such as verify_acdc_delegation_chain or check_agent_attestation, leaving tool selection to inference from the artifact chain references.
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 manifestARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Path of the entry to prove. | |
| digest | Yes | sha256:-prefixed digest of the file to prove. | |
| manifest | Yes | The disclosure manifest to check against (needs entries[] + merkle_root). |
TDQS
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.
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.
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.
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.
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.
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) VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_dscsa_transaction_statement").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 them: server vs browser compute routing, that inputs are processed transiently and never stored/logged/retained, and that an AP2 artifact with execution_hash is exported for provenance chaining.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, but then repeats itself ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.') and re-states the compute enum that the schema already carries at 100% coverage. The FV-status snapshot disclaimer and URL are boilerplate that crowds out task-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations gap on safety, the definition still leaves the actual decision function opaque: policy_parameters field names are pushed to an external manifest and the output is only reachable via describe_tool. Provenance/chaining and data-handling are covered, but the verification inputs/results the agent must reason about are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents compute, parent_hashes, parent_tool_ids and policy_parameters; that sets the baseline at 3. The description re-explains compute modes (largely duplicating the schema) and adds nothing about 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('DSCSA Transaction Statement (T3) Verifier') and identifies the node category as an OpenChainGraph compute node under compliance_mandate. It is distinguishable from most siblings, though it never explicitly contrasts itself with the near-neighbor verify_saleable_return (art-113), which it names only 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.
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 for the same job. The only routing signal is 'Output feeds: art-113-saleable-returns-verifier', which is a chaining hint 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.
verify_dual_layer_disclosureDual-Layer Disclosure VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 behavior: inputs are processed transiently and not stored/logged/retained, compute:'browser' returns a delegation URL, and gpu:true nodes always delegate. It also discloses that the tool 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text opens with a redundant restatement ('Dual-Layer Disclosure Verifier: OpenChainGraph compute node' followed immediately by 'Deterministic OpenChainGraph compute node') and re-explains compute modes already in the schema. The trailing FV-status paragraph with a long hash and the 'snapshot, not a subscription' aside is verbose boilerplate that crowds out the actual function of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object tool with no output schema, the description adequately covers compute routing, provenance chaining, the produced artifact, and privacy handling. It does not explain what policy_parameters must contain beyond 'see the tool's manifest', leaving the core verification inputs opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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:auto/server/browser behavior that is already in the schema and only lightly gestures at chaining via 'consumes upstream artifacts', adding little 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description labels the tool a 'Dual-Layer Disclosure Verifier' and an 'OpenChainGraph compute node', but never explains what a dual-layer disclosure check actually does, so the purpose is largely a restatement of the name. It does distinguish itself from siblings by naming the exact upstream (art-126-ai-act-art50-marking-checker) and downstream (art-128-content-binding-assertion-validator) artifacts, which gives chain position context without clarifying the function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only use guidance is 'Use synthetic or anonymised inputs only', which is a data-handling constraint rather than a when-to-use rule. There is no statement of when to choose this verifier over any of the many sibling verify_* tools, nor 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.
verify_einvoice_vat_calcE-Invoice VAT Calculation VerifierARead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_einvoice_vat_calc").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 adds genuinely useful behavior: deterministic computation, transient processing with no storage/logging/retention, synthetic-input guidance, compute-mode routing (server vs browser delegation, gpu:true always delegates), and an execution_hash-bearing AP2 artifact.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening lines and compute-mode/consequence statements earn their place, but the FV-status receipt URL plus a 64-hex hash and the 'Output schema: call describe_tool(...)' line are noise that bloats an otherwise signal-rich description. Structure is front-loaded reasonably but not tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema in the definition, the description does cover the return artifact (AP2 artifact with execution_hash) and its chain position, and explains compute routing. It stops short of describing the actual verification result fields, deferring to describe_tool, which leaves a modest gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics are already fully documented in the schema itself. The description's compute-mode discussion only restates what the schema field already says, adding no syntax or format detail beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: verifying an e-invoice VAT calculation, and situates it as an OpenChainGraph compliance node. It names the upstream (art-293-einvoice-format-validator) and downstream (art-295-einvoice-jurisdiction-mandate-router) artifacts, which genuinely positions it in the pipeline, but it never explicitly contrasts itself with close siblings like validate_einvoice_format or validate_einvoice_batch.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'consumes upstream from art-293 / output feeds art-295' pipeline notes imply when this node belongs in a chain, and 'use synthetic or anonymised inputs only' is a real precondition. However there is no explicit when-to-use vs alternatives statement, and no named substitute tool for the 'I have raw e-invoice data, not a validated artifact' case.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_erc165_interface_id").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 covered. The description adds genuinely useful context that annotations don't: transient processing with no storage/logging/retention, the requirement to use synthetic or anonymised inputs, and the export of an AP2 artifact with an execution_hash for provenance. It does not discuss failure modes, performance, or what a negative verification result looks like, keeping this at a solid 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence names the tool and its context, which is a reasonable front-load. But the remainder is a dense run-on of infrastructure boilerplate — compute binding, transient processing, AP2 artifact, FV-status URL and hash — that crowds out the tool's actual behavior. Much of it could be tightened or moved to a shared policy note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only verifier with full schema coverage and no output schema, an agent can call this correctly, and the description covers compute routing, data-handling policy, and provenance export. The major gap is that it never explains the verification semantics — what inputs are verified, what a pass/fail looks like, or what the artifact contains — so the definition is operationally usable but semantically incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents compute, parent_hashes, parent_tool_ids, and policy_parameters in detail. The description mostly duplicates the compute-mode semantics already in the schema and adds no field-level meaning for policy_parameters, which is left to 'See 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first line state an 'ERC-165 Interface ID Verifier', naming a resource (ERC-165 interface IDs) and an implied verification action, which is more specific than a bare tautology. However, the body of the description spends almost all its words on OpenChainGraph compute-node mechanics (compute modes, AP2 artifacts, FV-status) and never states what verification means here or what the tool evaluates. An agent has to infer the actual purpose from the name and title alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Among siblings the tool sits next to compute_pta_verifier, verify_execution_hash, verify_erc2612_permit_binding, and many other 'verify_*' tools, but the description never says which situations call for this one versus those alternatives. The only routing hint is a pointer to describe_tool for the output schema.
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 VerifierCRead-onlyIdempotentInspect
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. Consumes upstream artifacts from: art-699-x402-permit2-evidence-recomputer, art-700-authorization-payload-linter. Open at: https://ainumbers.co/chaingraph/art-612-erc2612-permit-binding-verifier.html FV-status (published/proven/still-trusted for this spec): /fv-status/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_erc2612_permit_binding").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: inputs are processed transiently and not stored/logged/retained, synthetic inputs only, deterministic execution, and it exports an AP2 artifact with execution_hash for provenance. Some of the compute-mode text merely duplicates the schema, but the data-handling and provenance disclosures earn credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening repeats itself verbatim ('OpenChainGraph compute node' twice), the compute-mode explanation duplicates the input schema, and a long FV-status paragraph with a raw JSON URL plus a trailing 'call describe_tool(...)' instruction pad the text. The actual domain purpose is buried under operational boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deterministic compute node with no output schema and annotations already covering safety, the description adequately covers the operational envelope (compute modes, transient handling, upstream artifacts, AP2 export) and correctly delegates return shape to describe_tool. However it omits any account of what a valid ERC-2612 permit binding requires, 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.
Does 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 restates the compute-mode semantics that the schema already spells out and adds no new meaning for parent_hashes, parent_tool_ids, or policy_parameters (field names are deferred to the manifest).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name/title give a specific verb+resource (verify ERC-2612 permit binding), but the description body never states what the verification actually checks — it spends its opening on infrastructure boilerplate ('OpenChainGraph compute node... Deterministic OpenChainGraph compute node') rather than the domain operation. It also never distinguishes this from the many nearby verify_*/recompute_* siblings such as recompute_x402_permit2_digest or verify_x402_signer_recovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names the upstream artifacts it consumes (art-699, art-700), which hints it is a downstream chain node, but there is no explicit when-to-use, when-not-to-use, or alternative-selection guidance. Nothing tells the agent why it would pick this verifier over a sibling verifier.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_erc8004_registry_entry").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, but the description adds real behavioral context beyond them: inputs are processed transiently and not stored/logged/retained, synthetic/anonymised inputs are required, an AP2 artifact with execution_hash is exported for provenance, and gpu:true nodes always delegate to the browser. That is substantive disclosure of side effects 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by boilerplate — a documentation URL, a raw 64-char FV-status hash, and an output-schema pointer — before any tool-specific purpose is stated. The genuinely useful sentence about transient processing is buried mid-paragraph, and nothing is front-loaded around what the tool verifies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The invocation mechanics (compute binding, privacy posture, artifact export, describe_tool pointer) are covered, which is reasonable for a 4-param compute node with no output schema. However, the core deliverable — what constitutes a valid ERC-8004 registry entry and what the verification result means — is entirely absent, leaving a gap for a compliance-control tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 no syntax, ordering, or format detail 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Beyond restating the name/title ('ERC-8004 Registry Entry Verifier') and tagging it 'compute node (compliance_control)', the description never states what it actually verifies or produces. A large share of the text is generic OpenChainGraph boilerplate (compute modes, transient processing, FV-status hash) that could be pasted onto any sibling tool, so an agent cannot distinguish this from other verify_* nodes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 verify_* tools, no prerequisites, and no exclusions. The only conditional language concerns compute-mode selection ('auto'/'browser'/'gpu:true'), which is an invocation mechanic already documented in the schema, 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_etf_pcf_basketETF PCF Create/Redeem Basket VerificationCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_etf_pcf_basket").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only/idempotent/non-destructive profile, but the description adds real behavioral context beyond them: inputs are processed transiently and not stored or logged, "use synthetic or anonymised inputs only", compute:auto vs browser delegation semantics, and the export of an AP2 artifact with execution_hash for chain provenance. That is substantive 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is dominated by chain-infrastructure boilerplate, a documentation URL, a raw FV-status hash, and a disclaimer about offline receipt verification that do little for tool selection. The one operationally important line (synthetic inputs only) is buried mid-paragraph rather than front-loaded after the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 names only one output trait (AP2 artifact with execution_hash) without describing the verification result itself or failure modes. With an opaque nested policy_parameters object and no return-value detail, an agent can invoke it but cannot anticipate what a verdict looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 contracts are already documented and the description only echoes them. Its one added note — that policy_parameters are computed server-side when compute is auto/server and that field names must come from "the tool's manifest" — is a partial answer that also admits the nested object's contents are unspecified here. Baseline 3 for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The only purpose statement is a verbatim restatement of the title ("ETF PCF Create/Redeem Basket Verification"), followed by unrelated infrastructure boilerplate ("OpenChainGraph compute node (compliance_control)"). It never says what the verification actually checks — basket composition, weights, shares outstanding, eligibility — nor how it differs from the many sibling verify_*/validate_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no preconditions, and no mention of alternatives. The compute-mode discussion explains invocation mechanics, not suitability. An agent cannot infer from this text when to pick verify_etf_pcf_basket over, e.g., compile_rebalance_evidence_pack or validate_fund_collateral.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_eth_state_proof").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, and the description substantially adds on top: transient processing with no storage/logging/retention, gpu:true always delegating to the browser, emission of an AP2 artifact carrying execution_hash, and an offline-verifiable FV-status receipt. These are real 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is padded with brand boilerplate ("Deterministic OpenChainGraph compute node" repeated), a marketing URL, and a 64-character FV-status hash inlined into prose. The actual capability statement is buried after two restatements of the tool's category, so it is not front-loaded with useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers compute routing and privacy posture but leaves the decision-function inputs to "see the tool's manifest" and defers the return shape to describe_tool. An agent can call it but cannot predict the artifact contents without an extra round trip.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 echoes only the compute-mode semantics and adds nothing about chaining (parent_hashes/parent_tool_ids ordering) or policy_parameters field names (deferring 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the name/title category ("State-Proof Verifier: OpenChainGraph compute node (cryptographic_mandate)") rather than stating the verb+resource the tool operates on. It never says what a state proof is verified against or what evidence the result carries beyond an opaque execution_hash. No sibling differentiation from the many other verify_* tools (verify_merkle_airdrop_proof, verify_proof_of_reserves_consistency) is offered.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute-mode routing (auto/server/browser) and warns to use synthetic inputs, which is useful context. But it gives no guidance on when to call this tool versus the other proof-verification siblings, and no prerequisites or input constraints beyond the data-handling warning.
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 hashARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| artifact | No | A full ChainGraph artifact envelope (must contain policy_parameters, output_payload, and execution_hash). | |
| claimed_hash | No | The execution_hash to check against (if not passing a full artifact). | |
| output_payload | No | Artifact output_payload (if not passing a full artifact). | |
| policy_parameters | No | Artifact policy_parameters (if not passing a full artifact). |
TDQS
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.
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.
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.
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.
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.
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 VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_finp2p_ledger_proof").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantial context beyond that: deterministic execution, server/browser delegation rules, transient non-retention of inputs, synthetic-only input policy, AP2 artifact export with execution_hash, and offline receipt verification. Missing auth and error behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is lengthy and somewhat repetitive, e.g., 'OpenChainGraph compute node' appears twice, and it includes URL and FV-status details that are not essential to invocation. It does front-load the tool name and compute behavior, but could be significantly tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations and a fully described schema cover technical invocation, but the description omits domain context for what a FinP2P ledger proof is, how policy_parameters should be populated, or when this verifier should be chosen over other verification tools. It is adequate but incomplete for a complex, nested-input verifier.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reinforces the compute enum semantics but adds no new meaning for parent_hashes, parent_tool_ids, or policy_parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name state 'FinP2P Ledger Proof Verifier' and the description categorizes it as an OpenChainGraph compute node, but it never explains what the proof verification actually does or what distinguishes it from the many other verify_* siblings. It mentions exporting an AP2 artifact, yet 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains compute modes and a synthetic-input constraint, but gives no when-to-use guidance, no when-not-to-use conditions, and no alternatives among sibling tools. An agent is left to infer selection criteria entirely.
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 VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_input_attestations").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/non-destructive), the description discloses substantial behavior: compute:auto resolves server-side for gpu:false nodes with registered kernels, compute:browser returns a delegation URL, gpu:true always delegates, and inputs are processed transiently with no storage/logging/retention. That privacy and compute-binding detail is genuinely additive, though return-side behavior is left to describe_tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Useful content (compute modes, transient-processing note) is present, but the text is padded with a provenance URL, a 64-character FV-status hash, and a redundant 'Deterministic OpenChainGraph compute node' restatement. The core facts are not cleanly front-loaded ahead of that noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compute node with a nested, untyped policy_parameters object and no output schema, the description covers the compute/privacy surface but leaves the actual decision-function fields opaque ('see the tool's manifest') and points to describe_tool for outputs. It is adequate but not sufficient for an agent to supply meaningful inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 description, and it adds nothing about parent hash ordering or the contents of policy_parameters (which it defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title ('Input Attestation Verifier') and labels the tool a 'deterministic OpenChainGraph compute node (compliance_mandate)', but never explains what verifying input attestations actually entails or what the decision function decides. It conveys infrastructure mechanics and output form rather than the operation's semantics, 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.
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 near-siblings (validate_input_attestations, validate_private_inputs, verify_execution_hash). The only directive is the input constraint 'Use synthetic or anonymised inputs only', which is a 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.
verify_ipe_integrityIPE Integrity VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_ipe_integrity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses that inputs are processed transiently and not stored/logged/retained, that execution is deterministic, that an AP2 artifact with execution_hash is exported for chain provenance, and that the FV-status receipt verifies offline. These are meaningful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first two sentences are near-duplicative ('OpenChainGraph compute node ... Deterministic OpenChainGraph compute node'), and the long URL plus FV-status paragraph consume space without aiding tool invocation. Front-loading is partial and the structure is denser than needed, though the technical content is coherent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description covers compute delegation semantics, privacy/retention behavior, artifact export and chaining, and points the agent to describe_tool for the output shape. That is reasonably complete for a moderately complex 4-parameter node, with only usage routing against siblings left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 compute-mode semantics and the chain.parent_hashes export behavior that the schema itself already describes, adding little new parameter 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.
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 a 'Deterministic OpenChainGraph compute node', but the opening line largely repeats a category label rather than stating a concrete verb+resource such as 'verify the integrity of an IPE artifact'. An agent can infer it verifies/attests IPE integrity from the name and title, but the prose itself does not clearly distinguish it from siblings like verify_execution_hash or build_chaingraph.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains compute-mode selection in detail, but that is parameter behavior, not usage guidance. There is no statement of when to choose this tool over alternatives such as verify_execution_hash, emit_chaingraph_artifact, or run_chain, and no prerequisites beyond a generic 'use synthetic or anonymised inputs only'. The agent is left to infer selection criteria.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_kya_x402_scope").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint/idempotent/non-destructive, and the description adds genuinely useful behavior beyond them: inputs are processed transiently and not stored or logged, an AP2 artifact with execution_hash is exported for chain provenance, and the FV-status receipt verifies offline. The compute-mode semantics (gpu:true always delegates) are also disclosed. Return format remains unspecified, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A dense run-on sentence chain that mixes provenance links, FV-status hashes, a URL, and compute-node plumbing ahead of any statement of what the tool verifies. The single actionable sentence (call describe_tool for the output schema) is buried at the end. Significant bloat with poor front-loading.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a verification tool with no output schema, the description deflects return-value documentation to describe_tool while covering execution modes and artifact side effects reasonably well. It never situates the tool among its many x402/AP2 siblings, so an agent can only partially decide whether this is the right call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 rule. The description's compute explanation largely duplicates the schema, and it adds no field-name detail for policy_parameters (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.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title restate 'KYA credential x x402 payload scope verifier' but the description never explains what a KYA credential is, what 'x402 payload scope' means, or what the verification actually checks. Most of the body is compute-node infrastructure boilerplate (Workers, gpu delegation, kernel registration) rather than purpose. It does not distinguish this verifier from the many sibling verify_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as verify_x402_signer_recovery, validate_a2a_x402_mandate, or check_x402_domain_nonce_window. The only conditional language concerns execution mode (compute:'auto' vs 'browser'), which is a runtime detail, not a usage boundary.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_license_election").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With annotations already covering readOnly/idempotent/non-destructive semantics, the description adds genuine behavioral context beyond them: compute-mode delegation rules, transient processing with no storage/logging/retention, an explicit 'use synthetic or anonymised inputs only' constraint, and AP2 artifact export with execution_hash provenance. That is well above the annotation baseline and does not contradict it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is boilerplate-heavy and repetitive ('OpenChainGraph compute node' stated twice, duplicated compute-mode explanation also in the schema), and it embeds a long cryptographic hash URL inline. The core purpose is not front-loaded ahead of the infrastructure prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-param compute node with no output schema, the description covers execution mode, data handling, provenance artifacts, and the upstream dependency reasonably well. But it omits tool-selection context against the sibling certifier and leaves the meaning of a 'license election' result unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, including the enum meaning. The description reinforces the compute-mode behavior but adds no syntax or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name identify the resource (license election) and the verb (verify), and the description notes it is a deterministic compute node consuming art-199 upstream artifacts. However, much of the text is infrastructure boilerplate (compute binding, FV-status URL) and it never states what a verified election actually yields, nor does it distinguish this from the near-identical sibling certify_license_election.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. An agent cannot tell from this description whether to reach for verify_license_election, certify_license_election, or assemble_license_terms; the upstream-artifact mention is provenance, not selection guidance.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_merkle_airdrop_proof").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/non-openWorld, so the bar is lower, and the description usefully adds that inputs are processed transiently, not stored/logged/retained, that synthetic inputs are required, that execution is deterministic, and that an AP2 artifact with execution_hash is exported and the receipt verifies offline. These are genuine behavioral facts beyond the annotations, though the FV-status hashing boilerplate dilutes them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long, front-loads generic platform narrative, and spends substantial space on compute-binding mechanics and a full FV-status hash URL/snapshot disclaimer that do not help an agent invoke the tool. The useful signal (transient processing, AP2 export) is buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a nested-input verification tool with no output schema, the description never explains the tool's actual decision function or the meaning/shape of policy_parameters, instead deferring to 'call describe_tool(...)'. The compute-mode and provenance-export context is present, but the core verification semantics are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the compute modes but adds no syntax, format, or ordering guidance beyond what the schema provides, warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and first clause convey a verifier for a Merkle airdrop proof, but the description itself never explains what the operation does, what is being proven, or how it differs from close siblings like verify_merkle_batch, verify_execution_hash, or verify_summa_mst_inclusion. The dominant content is platform boilerplate ('OpenChainGraph compute node (payment_policy)') rather than the tool's specific purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 conditional text concerns the compute mode (auto/server/browser), which is a parameter choice, not a usage context. An agent gets no signal about when to pick this over the many other verify_* tools.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_merkle_batch").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive/openWorld=false, so the bar is lowered, yet the description adds genuinely useful behavior: inputs are transient and not stored/logged/retained, synthetic inputs are required, an AP2 artifact with execution_hash is exported, and gpu:true nodes always delegate to the browser. These are facts an agent could not get from the structured fields and that affect how it should call 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The block is dominated by boilerplate: a documentation URL, a 64-hex FV-status filename, and a pointer to describe_tool for the output schema. The actual purpose is not front-loaded; the first sentence repeats the title. Several sentences restate the compute-mode rules already present in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 characterize the return shape, and it only says an AP2 artifact with execution_hash is exported, without describing the verification verdict itself. It does supply chaining context (upstream and downstream artifact IDs) and the FV receipt, so it is more complete than a bare stub but still leaves the result semantics underspecified for a tool whose name promises verification.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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, making 3 the baseline. The description reiterates the compute-mode semantics and hints at chaining from upstream artifacts, but adds no syntax or ordering detail beyond the schema's own text, and leaves policy_parameters field names to a manifest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens by restating the title ("Merkle Batch Verifier: OpenChainGraph compute node") and then spends most of its length on compute-mode plumbing, data-handling policy, and provenance wiring rather than what the verification actually computes or covers. The verb 'verify' and resource 'merkle batch' are only present via the name/title; the body never clarifies what is being verified against what. An agent can infer the domain 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no 'use this when' guidance and no comparison to siblings like verify_merkle_airdrop_proof or verify_execution_hash. The compute-mode paragraph describes parameter behavior (server vs browser delegation), not when to select this tool over alternatives. Upstream/downstream artifact IDs are listed but not framed as selection criteria.
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 CompletenessCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_migration_completeness").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly, idempotent, non-destructive, non-openWorld), the description discloses that execution is deterministic, that inputs are processed transiently and never stored/logged/retained, how compute mode selection works, and that an AP2 artifact with execution_hash is exported for chain provenance. This is genuinely useful behavioral 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text opens with a name restatement plus infrastructure boilerplate, then pads with a documentation URL, an fv-status hash path, and a disclaimer about snapshots that do not help an agent select or invoke the tool. The actual function is never front-loaded, so the structure buries signal under registry metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with nested objects, four parameters, and no output schema, the description omits the core semantic content: what the decision function evaluates and what the AP2 artifact contains beyond execution_hash (it only points to describe_tool). The transparency about execution is good, but the definition is not complete enough to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does 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's compute-mode text merely mirrors the schema's own enum description, and for policy_parameters it defers to 'the tool's manifest for field names' rather than adding meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name/title ('Payment Data Migration Completeness: OpenChainGraph compute node') and then describes execution infrastructure rather than what the tool actually verifies. It never states what 'migration completeness' means, what inputs are checked, or what verdict is produced, so an agent cannot distinguish this from other attestation/compute nodes by reading it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance offered is the input-safety constraint 'Use synthetic or anonymised inputs only.' There is no when-to-use, when-not-to-use, prerequisite, or sibling routing information despite an enormous sibling list containing many other verify_* and check_* 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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_product_authenticity").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe, idempotent read profile, so the bar is lower, and the description adds genuinely useful non-annotation context: inputs are processed transiently and not stored/logged/retained, the run exports an AP2 artifact carrying an execution_hash, and it chains from an upstream artifact. These are real behavioral disclosures beyond the structured fields. It does not describe the return shape or failure modes, which keeps it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is a dense block of repeated plumbing: compute-mode behavior duplicates the schema's own parameter description, and the FV-status hash URL plus the 'snapshot, not a subscription / verifies offline' aside are noise an agent does not need to invoke the tool. Front-loading with the title verb is the one structural virtue, 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool whose actual work lives in the opaque policy_parameters object and which has no output schema, the description omits exactly what an agent needs: which fields to supply to run a verification and what the result contains. It redirects to describe_tool and 'the tool's manifest,' leaving the core invocation semantics incomplete despite the rich infrastructure detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 one useful mapping (the upstream parent is art-116), which lightly clarifies parent_hashes/parent_tool_ids, but it explicitly defers the decision-function fields ('See the tool's manifest') and restates compute-mode semantics already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title convey the specific verb+resource (verify a luxury-good product's authenticity), but the description body never describes the verification decision itself — it is almost entirely infrastructure boilerplate about compute binding and chain provenance. The closest thing to differentiation is the note that it consumes an upstream artifact from art-116-product-lineage-builder, but closely related siblings (build_product_lineage, assess_suspect_product_status, resolve_recall_trace) are neither named nor contrasted. An agent learns the topic but not what the tool actually decides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 usage directive is 'Use synthetic or anonymised inputs only,' which is a data constraint rather than a selection criterion. An agent cannot tell from this text when to pick this tool over the sibling lineage/status/traceability tools.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_proof_of_reserves_consistency").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 baseline is covered. The description adds genuinely useful behaviour beyond them: transient processing with no storage/logging/retention, the synthetic-input-only requirement, server-vs-browser delegation rules, and that it exports 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is a redundant title/name restatement followed by boilerplate about Cloudflare Workers, delegation URLs, and an FV-status JSON receipt URL plus hash. Several sentences (the offline-verification receipt note especially) do not help an agent select or invoke the tool, so the payload is diluted rather than front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With four parameters including a nested free-form policy_parameters object ('See the tool's manifest for field names') and no output schema, the description should carry more weight. It points to describe_tool for the output schema, which helps slightly, but it never explains what a consistency verdict looks like or how the policy inputs drive it, leaving a material gap for a compliance verification tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 already documented in the schema; the description largely echoes the compute-mode semantics. It does lightly contextualise chaining ('for chain provenance'), but adds no field names or format 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name convey 'verify proof-of-reserves consistency', but the description itself mostly restates that node label and pads it with infrastructure metadata (compute node, compliance_mandate, deterministic). It never states what is actually checked for consistency or what the verification returns, and it does not differentiate itself from close siblings like verify_reserve_proof, precheck_reserve_attestation, or compute_por_liabilities_composite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs alternatives guidance. The compute-mode discussion and the 'Use synthetic or anonymised inputs only' line are constraints on execution, not selection criteria. An agent cannot tell from this text when this verifier is the right tool versus the many neighbouring reserve/attestation tools.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_reserve_proof").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, it discloses genuinely useful behavior: deterministic execution, server-side vs browser delegation rules by gpu flag, transient input processing with no storage/logging/retention, export of an AP2 artifact with execution_hash, and an FV-status receipt that verifies offline. These are material operational facts an agent could not infer from readOnlyHint/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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose-relevant content is front-loaded, but the description opens with a redundant restatement ('Reserve Proof Verifier: ... Deterministic OpenChainGraph compute node' followed immediately by 'Deterministic OpenChainGraph compute node'). Several boilerplate platform sentences are repeated across the text and consume space that could explain what the tool verifies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and zero required parameters, the description does cover compute modes, data-retention posture, provenance export, and points to a doc URL plus describe_tool for the schema. However, it never explains the decision function or the policy_parameters fields the agent must supply beyond 'see the tool's manifest', leaving a real gap for a compute-node tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 well documented in the schema, including the compute enum and the parent_hashes/parent_tool_ids chaining pair. The description largely restates the compute-mode text already in the schema and adds no new syntax or format detail, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening 'Reserve Proof Verifier: OpenChainGraph compute node (compliance_mandate)' essentially restates the name and title, then pivots to generic platform plumbing rather than stating what verification of a reserve proof means or returns. It never distinguishes this tool from close siblings such as verify_proof_of_reserves_consistency, precheck_reserve_attestation, or compute_por_liabilities_composite. An agent cannot tell from this text what the tool actually decides.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 any sibling, which matters given the large family of reserve- and proof-verification tools. The only guidance is an input-handling constraint ('synthetic or anonymised inputs only') and compute-mode behavior, neither of which helps 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.
verify_revocation_statusRevocation-Status VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_revocation_status").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 goes beyond them usefully: it states inputs are processed transiently and not stored or retained, that synthetic inputs are required, that browser mode returns a delegation URL, and that the call exports an AP2 artifact with execution_hash for provenance. That is genuine behavioral context, though some of it is shared 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description opens with infrastructure and provenance boilerplate rather than the tool's purpose, and spends most of its length on chain-graph mechanics, an HTML URL, an FV-status file path, and a describe_tool pointer. The actual decision function is never stated, so the length is waste rather than substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 correctly points to describe_tool for the output shape, so return values are not a gap. The compute/chain input mechanics are well covered. What is missing is the core domain semantics — what revocation status is being verified and under which mandate — which an agent needs to invoke this correctly among many similar verifiers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 duplicates the schema's enum description, and it explicitly defers policy_parameters field names to 'the tool's manifest', adding no meaning beyond the schema. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with 'Revocation-Status Verifier: OpenChainGraph compute node (compliance_mandate)', which is essentially the title restated plus an infrastructure label. It never says what subject matter the revocation status applies to (keys, certificates, agent tokens, licenses) or which sibling verify_* tool it differs from, so the agent cannot tell it apart from verify_execution_hash or audit_mcp_tool_scope_revocation 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.
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 given. The only routing information is about compute modes (auto/server/browser), which is a transport decision, not a task-selection decision. Among a large family of verify_* siblings, this 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.
verify_saleable_returnDSCSA Saleable Returns VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_saleable_return").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 pre-cleared. The description adds genuinely useful behavior beyond that: inputs are processed transiently and not stored/logged/retained, an AP2 artifact with execution_hash is exported for provenance, and the FV-status receipt verifies offline. It still doesn't say what the verification response contains, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is bloated with infrastructure boilerplate: a long FV-status hash URL, the 'snapshot, not a subscription' aside, and repeated compute-mode detail already in the schema. These dilute the front-loaded chaining information an agent actually needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a compliance compute node with no output schema and an opaque policy_parameters object, the description supplies useful context (upstream/downstream artifact linkage, artifact export, compute delegation) and points to describe_tool for the output shape. But it never explains what the decision function evaluates or what fields policy_parameters requires, leaving a substantive gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 that the schema already carries. It adds no field names for the opaque policy_parameters object, so no credit above the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the tool as the 'DSCSA Saleable Returns Verifier' and a compliance_mandate compute node, and situates it in a chain (consumes art-112, feeds art-114). However, beyond restating the name/title it never explains what the verification actually determines about a saleable return, so an agent must infer the purpose from the name alone. It does not differentiate the function from siblings like verify_dscsa_transaction_statement or assess_suspect_product_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives operational guidance on compute mode selection ('auto' vs 'browser', gpu delegation) and a data-handling instruction ('use synthetic or anonymised inputs only'). It offers no when-to-use vs when-not-to-use guidance and never routes the agent to or away from sibling verification tools, so usage remains implied.
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 InvariantCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_settlement_asset_backing").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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: deterministic server-side computation, the auto/server/browser compute semantics, transient processing with no storage/logging/retention, and an exported AP2 artifact carrying execution_hash for chain provenance. The offline-verifiable FV-status receipt is additional 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode explanation is front-loaded and clear, but the text carries a lot of shared OpenChainGraph infrastructure boilerplate (transient processing, FV-status URL, artifact export) that crowds out the actual function. It is not bloated to the point of harm, but several sentences do little work relative to the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema the description is not obliged to explain return values, but it deflects output documentation to describe_tool() and leaves the actual invariant and policy_parameters field names unspecified. The infrastructure and provenance story is complete, but the domain-specific content an agent needs to invoke it meaningfully is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, and the description's compute-mode recap duplicates that. For policy_parameters it punts entirely ('See the tool's manifest for field names'), which adds no meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool ('Settlement-Asset Backing Invariant') and labels it an 'OpenChainGraph compute node (compliance_mandate)', but it never states what the invariant actually checks or what the tool verifies about settlement-asset backing. It essentially restates the title plus infrastructure boilerplate, giving no way to distinguish its purpose from the nearby sibling classify_settlement_asset_finality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when this tool should be selected versus alternatives; the only directive is 'Use synthetic or anonymised inputs only', which is a data-hygiene constraint rather than usage context. No prerequisites, no when-not-to-use, no alternative tools named.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_slsa_provenance").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 context: inputs are processed transiently and not stored or logged, only synthetic/anonymised inputs may be used, execution is deterministic, and an AP2 artifact with execution_hash is exported for chain provenance. It also clarifies the offline FV-status receipt behavior, which is genuinely useful and not derivable from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is bloated with infra boilerplate, a URL, and a full FV-status hash, and the actual purpose of the tool is never front-loaded — it is buried behind compute-node mechanics. Several sentences (Cloudflare Workers kernel registration, offline receipt validity) 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, a nested object, and no output schema, an agent still lacks what policy_parameters should contain and what a verification result looks like. The chain-input/output hints and transient-data disclosure partially fill the gap, but the core verification contract remains underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 exposition largely duplicates the enum's own description. The most opaque parameter, policy_parameters, is explicitly deferred ('See the tool's manifest for field names'), so the description does not compensate for the one place semantics are thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The name and title state the resource (SLSA provenance) but the description never defines what 'verify' actually checks — it opens with 'OpenChainGraph compute node (compliance_mandate)' and spends most of its text on compute-mode plumbing. The only purpose-relevant content is the chain position (consumes art-135-cyclonedx-sbom-validator, feeds art-137-openvex-statement-validator), which distinguishes it from siblings but describes data flow rather than the verification operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 verifier over any sibling (e.g. validate_cyclonedx_sbom, validate_openvex_statement, verify_execution_hash). The only conditional advice is about the compute parameter, not tool selection. A caller cannot tell from the text whether this belongs before or after SBOM validation beyond one implicit upstream/downstream hint.
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 CheckerCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, yet the description adds real context beyond them: transient processing with no storage/logging/retention, server-side vs browser delegation semantics, and export of an AP2 artifact with execution_hash for chain provenance. It stops short of describing failure modes or return contents.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The compute-mode and data-handling sentences are front-loaded and earn their place, but the raw documentation URL and the verbose FV-status snapshot sentence (including a 64-character hash) are low-value boilerplate for an invocation decision. Mixed signal-to-noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no required parameters, the description carries the burden of explaining what the tool produces, and it never says what inclusion is checked or what the decision function returns. The AP2/execution_hash export is mentioned, but the core semantic purpose is absent, leaving the definition incomplete for a verification tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 enum description and 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the title ('Summa MST Inclusion Checker') and tags it as an 'OpenChainGraph compute node (compliance_mandate)', but never states what is actually being verified — inclusion of what, against which Merkle/sum tree, producing what decision. It gives category and infrastructure but no functional verb+resource, so an agent cannot distinguish it from siblings like aggregate_summa_mst_liabilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 constraint ('Use synthetic or anonymised inputs only') is a data-handling rule, not selection guidance. Nothing tells the agent when this tool should be chosen over the many other verify_*/aggregate_summa_* siblings.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_tempo_mpp_voucher").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 new behavioral context: inputs are processed transiently and never stored or logged, synthetic or anonymised inputs are required, execution is deterministic, and an AP2 artifact with execution_hash is exported for chain provenance. The FV-status note also clarifies the receipt verifies offline independently of the snapshot file.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the title but then sprawls into run-on sentences with redundancy ('OpenChainGraph compute node (compliance_control). Deterministic OpenChainGraph compute node.'). The documentation URL, FV-status hash, and output-schema deferral are useful but presented without structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no output schema, the description covers compute modes, data handling, and the exported artifact, and it correctly defers return-value detail to describe_tool. However, it omits what the tool actually verifies, the pass/fail semantics, and how to discover the policy_parameters field names it references only via 'the tool's manifest'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 schema, establishing the baseline of 3. The description only echoes the compute-mode semantics and hints at chaining via 'execution_hash for chain provenance'; it adds nothing about policy_parameters or the parent_hashes/parent_tool_ids ordering.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause is a verbatim restatement of the title ('Tempo MPP Voucher & Receipt Verifier'), and the remainder is platform boilerplate about OpenChainGraph compute nodes. It never states what verification actually entails (which checks run, what constitutes pass/fail) and gives no differentiation from the many sibling verifiers such as verify_ap2_payment_receipt 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.
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 alternatives, nor any prerequisites or exclusions. The only conditional logic present ('auto' vs 'browser' vs 'server') concerns execution mode, not whether this is the right tool for a given task.
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 VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_timestamp_attestation").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantive context the annotations cannot: server-vs-browser execution semantics for gpu:false/gpu:true nodes, transient non-retention of inputs, and the AP2 execution_hash provenance artifact it emits. It also notes the FV-status receipt verifies offline. It stops short of describing the verification result itself, but this 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It opens with categorization ('compute node', 'deterministic compute node') rather than the purpose, and packs compute binding, data-handling, provenance, an artwork URL, and an FV-status URL into one dense block. The signal is present but not front-loaded and is padded with repeated framing and links.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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-value burden, and it defers to 'call describe_tool(...)' instead of explaining what a verification result contains. It covers compute behavior, data handling, and provenance well, but a verification tool's success/failure output shape is a notable gap for a no-output-schema tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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; the baseline is 3. The description reinforces the compute-mode semantics but adds little for parent_hashes, parent_tool_ids, or policy_parameters beyond what the schema states. Adequate but not additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never plainly states the core operation ('verifies a timestamp attestation'); it categorizes itself as an 'OpenChainGraph compute node (compliance_mandate)' and describes mechanics (compute modes, artifact export). The name/title carry the actual purpose, and there is no differentiation from siblings like verify_anchored_extract or verify_execution_hash. Input/output hints (consumes art-121, exports AP2 artifact) give partial clarity but the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides one real usage constraint ('Use synthetic or anonymised inputs only'), but no when-to-use/when-not guidance and no routing to alternatives among the many verify_* siblings. The compute-mode text explains mechanics, not selection. An agent must 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.
verify_trade_document_setTrade Document Provenance & Consistency VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_trade_document_set").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 material context beyond them: transient processing with no storage or logging, synthetic-input-only constraint, deterministic execution, AP2 artifact export with execution_hash, and server-vs-browser delegation semantics including the gpu:true rule. That is genuinely useful behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is dense and poorly front-loaded, leading with boilerplate commit/hash/URL metadata and artifact-ID lists before the reader gets any sense of the tool's function. Several elements (FV-status hash file, external URL, downstream artifact IDs) are noise for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 — instead it defers with 'call describe_tool'. For a verifier with an opaque policy_parameters object and no explanation of what consistency/provenance checks run, the definition is not complete enough for an agent to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 semantics but adds no new field-level meaning, and explicitly punts on policy_parameters field names ('see 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and name state the resource (trade document set) and the operation (verify provenance & consistency), and the upstream/downstream artifact IDs hint at the workflow position. But the body never explains what actually gets verified or what a 'trade document set' is — it mostly restates the title and piles on compute-node metadata, so an agent can't distinguish it from siblings like check_digital_trade_rules or examine_lc_document_presentation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only when-to-use guidance concerns compute mode (auto/server/browser), which is a parameter-level concern, not tool selection. There is no statement of when to reach for this verifier versus the many other verification and digital-trade tools, and no prerequisites 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.
verify_trid_apr_accuracyTRID APR Accuracy VerifierBRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_trid_apr_accuracy").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 substantial context beyond them: transient processing with no storage/logging, the compute:"auto"/"server"/"browser" execution split, AP2 artifact export with execution_hash, and the FV-status receipt being a verifying offline snapshot. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the tool identity, and sentences about transient processing and compute modes earn their place, but the literal URL and the lengthy FV-status SHA-256 path with an explanatory clause are heavy boilerplate that dilutes the description. Density is high but not all of it is actionable context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter, nested-object compute node with no output schema, the description covers execution modes, data-transience, provenance export, and upstream artifact dependency, and it routes the agent to describe_tool for the output schema. The main omission is what the verification actually returns or asserts, but the overall picture is close to complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 the semantics of parent_hashes ordering or the opaque policy_parameters (which explicitly defers 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'TRID APR Accuracy Verifier' and the phrase 'OpenChainGraph compute node (compliance_mandate)' indicate it is a deterministic compute node for TRID APR accuracy, but the description never states what the computation actually verifies or its output semantics. It does not differentiate from adjacent siblings like compute_reg_z_appendix_j_apr or compute_trid_tolerance_cure. 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.
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 naming of alternatives. The only routing hint is 'Consumes upstream artifacts from: art-215-reg-z-appendix-j-apr', which loosely positions it in a chain but does not tell an agent when to prefer it over sibling verifiers.
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)CRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched.
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 beyond them: inputs are processed transiently and not stored or logged, compute:'browser' returns a browser delegation URL, gpu:true nodes always delegate, and an AP2 artifact with execution_hash is exported. It also flags the FV-status as a snapshot verifiable offline. It stops short of describing the signature verification semantics or failure behavior, but 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening is redundant ('OpenChainGraph compute node (compliance_mandate). Deterministic OpenChainGraph compute node.'), and a long FV-status hash URL occupies a large share of the text. Purpose is front-loaded, but several sentences are boilerplate rather than earning their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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-value burden, and it does disclose the AP2 export and execution_hash. However, for a verification tool it never states what constitutes a pass/fail or what the decision function consumes, and policy_parameters field names are deferred to an external manifest, leaving the core verification contract underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 restates the compute default/behavior but adds no field-level meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The title/name gives a specific verb+resource (Web Bot Auth Signature Verifier per RFC 9421), but the description body itself never explains what a Web Bot Auth signature is or what the verification asserts. Most of the text is spent on OpenChainGraph compute-node plumbing, and 'Output feeds: art-130-signature-directory-validator' is the only weak differentiator from siblings like validate_signature_directory or 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.
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. Usage is only implied via the downstream chain link ('Output feeds: art-130-signature-directory-validator'), which is not enough to route an agent between the many verify_* tools.
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 VerifierCRead-onlyIdempotentInspect
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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_witness_cosignatures").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 goes further: it discloses transient processing with no storage/logging/retention, deterministic execution, server-vs-browser compute routing (including browser delegation URLs for gpu:true), and that it exports an AP2 artifact with execution_hash for chain provenance. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with marketing/infra boilerplate rather than the tool's purpose, then padded with a URL, a raw FV-status hash, and a pointer to describe_tool for the output schema. Much of the content is identical boilerplate shared across the compute-node family rather than tool-specific value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a cryptographic verification tool with a nested policy_parameters object and no output schema, the description omits the essentials: what inputs are checked, what constitutes a valid cosignature, and what a result communicates. It covers hosting/privacy/provenance but not the verification semantics 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults 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 prose largely duplicates the schema's compute enum description and adds no new parameter semantics (e.g., it never explains what policy_parameters fields mean for cosignature verification). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the name ('Witness Cosignature Verifier: OpenChainGraph compute node (cryptographic_mandate)') and then pivots entirely to infrastructure boilerplate about compute modes and hosting. It never states what a witness cosignature is, what is being verified, or what a passing/failing result means. It does not distinguish itself from the many sibling verifiers (verify_webbotauth_signature, verify_timestamp_attestation, verify_anchored_extract).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is a usage constraint ('Use synthetic or anonymised inputs only') and an implied context (chain provenance via parent_hashes), but no guidance on when to reach for this tool versus the dozens of other verify_* siblings. 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.
verify_x402_signer_recoveryx402 Signer Recovery VerifierBRead-onlyIdempotentInspect
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, art-699-x402-permit2-evidence-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/8498d0819c941fdb731f9e10f5d93ee929026919cb111a42149821b48b5ac180.json — a snapshot, not a subscription; this receipt verifies offline regardless of whether that file is ever fetched. Output schema: call describe_tool("verify_x402_signer_recovery").
| Name | Required | Description | Default |
|---|---|---|---|
| compute | No | Compute mode (v0.4 Compute Binding). "auto" (default) = server for gpu:false nodes with registered kernels; "server" = force server-side; "browser" = always return browser delegation URL. gpu:true nodes always delegate. | |
| parent_hashes | No | execution_hash values from upstream ChainGraph AP2 artifacts to chain from (sets chain.parent_hashes in the export). | |
| parent_tool_ids | No | tool_id values matching parent_hashes, in the same order. | |
| policy_parameters | No | Input parameters for this tool's decision function. For gpu:false 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
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 genuine behavior beyond that: inputs are processed transiently and not stored/logged/retained, compute:'browser' returns a delegation URL instead of a result, gpu:true always delegates, and the call exports an AP2 artifact carrying execution_hash for provenance. The determinism claim and the chaining contract are also useful disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The identifier is front-loaded, but the second sentence ('Deterministic OpenChainGraph compute node') merely repeats the first, and lines are spent on the FV-status hash plus an explanation of snapshot semantics and an 'Open at' URL that do not help an agent invoke the tool. Roughly a third of the text is boilerplate rather than invocation guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 nested policy_parameters object and no output schema, the description covers compute modes, data handling, and provenance chaining adequately, and correctly defers return values to describe_tool. The material gap is that the decision-function inputs themselves are undocumented, forcing an out-of-band manifest lookup before the tool can be called correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 earns an increment by naming the concrete upstream artifacts (art-590-x402-eip712-digest-recomputer, art-699-x402-permit2-evidence-recomputer) that supply the values for parent_hashes/parent_tool_ids. It stops short of documenting policy_parameters field names, punting to 'the tool's manifest', which leaves the actual decision payload opaque here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the title and then spends most of its length on platform mechanics ('OpenChainGraph compute node', compute modes) rather than saying what signer-recovery verification actually consumes and returns. An agent cannot tell from this text why it should pick this over siblings like recompute_x402_eip712_digest, recompute_x402_permit2_digest, or decode_x402_payment, which operate on the same x402 signature material.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one real usage constraint ('Use synthetic or anonymised inputs only') and names the upstream artifacts it chains from, which implies a prerequisite ordering. But it never states when this tool is the right choice versus the digest-recomputer or payment-decoder siblings, and no exclusions are offered.
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 cellsARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| csv | Yes | CSV text to parse. | |
| provenance | No | Optional provenance metadata, only used when as_artifact is true. Never affects execution_hash. | |
| as_artifact | No | When 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
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.
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.
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.
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.
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.
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 valuesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| cells | Yes | Map 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. | |
| provenance | No | Optional provenance metadata, only used when as_artifact is true. Never affects execution_hash. | |
| as_artifact | No | When 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
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.
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.
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.
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.
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.
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 fragmentARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| cells | Yes | Map 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. | |
| range | Yes | A1-style cell or range reference to digest, e.g. "B2" or "B2:D9". | |
| semantics | No | Free-text pointer describing what this range means to the consuming policy_parameters. | |
| provenance | No | Optional provenance metadata, only used when as_artifact is true. Never affects execution_hash. | |
| as_artifact | No | When 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
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.
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.
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.
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.
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.
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 ManifestARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| manifest | Yes | WB-2 Spreadsheet Input Manifest object (input-manifest.schema.json) -- the expected side. | |
| produced_at | Yes | ISO-8601 timestamp -- required, no default (pure: no wall-clock read). | |
| produced_by | Yes | Identity slot for who/what produced this receipt -- required, no default (pure: no identity read). | |
| expected_by_ref | No | OPTIONAL 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_ref | Yes | Map 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
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.
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.
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.
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.
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.
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 tool update
- Added
estimate_ai_token_spend
5 tool updates
- Changed
build_workflow_links1 field changed- changed
Input schema / properties / chain / descriptionPrevious value: -"Name of a pre-defined chain (one of 370 — enumerate with find_chain). Mutually exclusive with steps."New value: +"Name of a pre-defined chain (one of 374 — enumerate with find_chain). Mutually exclusive with steps."
- Added
find_runway_goal_path - Added
lint_authorization_payload - Added
match_invoice_three_way - Added
recompute_x402_permit2_digest
1 tool update
- Added
compute_isa530_audit_sampling_mus
2 tool updates
- Changed
build_workflow_links1 field changed- changed
Input schema / properties / chain / descriptionPrevious value: -"Name of a pre-defined chain (one of 368 — enumerate with find_chain). Mutually exclusive with steps."New value: +"Name of a pre-defined chain (one of 370 — enumerate with find_chain). Mutually exclusive with steps."
- Added
call_tool
1 tool update
- Added
verify_close_posting_lineage
1 tool update
- Added
compute_regulatory_obligations_register
2 tool updates
- Changed
list_ainumbers_tools1 field changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Page token: echo the nextCursor from the previous reply to fetch the next page (keyset on tool name — stable across catalog regens).", + "type": "string" +}
- Added
run_chain_batch
1 tool update
- Changed
build_evidence_pack1 field changed- added
Input schema / properties / decision_trailAdded value: +{ + "description": "Per-step decision reason trail from the run_chain result (pass its decision_trail — response field or composite_output.decision_trail). Carried verbatim into the pack as pack-level metadata, outside every section hash; omitted entirely when not supplied. See DECISIONTRAIL-1.", + "items": { + "properties": { + "decided_by": { + "description": "step_id of the decision that routed control past this step.", + "type": "string" + }, + "gate_rule_id": { + "description": "<step_id>#r<index> or <step_id>#default — the gate rule that fired or bypassed this step. Recomputable from the hash-bound decisions[].", + "type": "string" + }, + "input_required_cause": { + "description": "The kernel error that made this step input_required.", + "type": "string" + }, + "next": { + "description": "Routing target of the gate decision (a step id, or the terminal \"end\"/\"escalate\").", + "type": "string" + }, + "order": { + "description": "1-based step order, mirroring the producing run_chain result.", + "maximum": 9007199254740991, + "minimum": -9007199254740991, + "type": "integer" + }, + "reason_code": { + "description": "Closed enum: ran | gate_routed | skipped_by_gate | skipped_by_escalation | input_required | unknown_node | gpu_browser_only | no_kernel_browser_only.", + "type": "string" + }, + "status": { + "description": "Per-step status from the run_chain result.", + "type": "string" + }, + "tool_id": { + "description": "The step's tool_id.", + "type": "string" + } + }, + "required": [ + "order", + "tool_id", + "status", + "reason_code" + ], + "type": "object" + }, + "type": "array" +}
598 tool updates
- Changed
adjudicate_emir_reconciliation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
age_emir_reconciliation_breaks1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
agentic_mandate_sandbox1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": {}, - "type": "object" -}New value: +null
- Changed
aggregate_cbam_precursor_emissions1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
aggregate_execution_receipts1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
aggregate_ownership_50pct1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
aggregate_reputation_score1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
aggregate_solvency2_scr_modules1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
aggregate_taxonomy_kpi_gar1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
allocate_ihb_interest1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
amortize_asc606_commissions1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
analyze_dc_vs_lc_cost_benefit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
analyze_prediction_market1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
anchor_document_integrity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
ap2_aml_mandate_builder1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": {}, - "type": "object" -}New value: +null
- Changed
apply_climate_scenario1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assemble_ai_addendum1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assemble_aiuc1_evidence_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assemble_license_terms1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assemble_mutual_nda1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assemble_ocg_evidence_bundle1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_circumvention_diligence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_cra_vuln_reporting_readiness1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "gaps": { - "type": "array" - }, - "vuln_reporting_ready": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
assess_defi_lending1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_exam_readiness_pack1 field changed- changed
Output schema / (root)Previous value: -{ - "description": "Refusal shape: { valid: false, errors: string[] }. Valid shape below; module_annex and evidence_handoff keys appear only when their inputs were supplied.", - "properties": { - "delivered": { - "type": "integer" - }, - "errors": { - "items": { - "type": "string" - }, - "type": "array" - }, - "evidence_handoff": { - "properties": { - "binder_tools": { - "items": { - "properties": { - "path": { - "type": "string" - }, - "role": { - "type": "string" - }, - "tool_id": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "mode": { - "enum": [ - "composition" - ], - "type": "string" - }, - "per_request": { - "items": { - "properties": { - "handover": { - "enum": [ - "ELIGIBLE", - "BLOCKED_NOT_DELIVERED", - "BLOCKED_OVERDUE" - ], - "type": "string" - }, - "request_id": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" - }, - "findings": { - "items": { - "properties": { - "check": { - "enum": [ - "overdue_requests" - ], - "type": "string" - }, - "detail": { - "type": "string" - }, - "status": { - "enum": [ - "PASS", - "FAIL" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "module_annex": { - "properties": { - "annex_verdict": { - "enum": [ - "COMPLETE", - "GAPS", - "INCOMPLETE" - ], - "type": "string" - }, - "commencement_rule": { - "type": "string" - }, - "edition": { - "type": "string" - }, - "first_selection_deadline": { - "type": "string" - }, - "items": { - "items": { - "properties": { - "assessed": { - "type": "boolean" - }, - "item": { - "type": "string" - }, - "note": { - "type": "string" - }, - "status": { - "enum": [ - "PASS", - "FAIL", - "NOT_ASSESSED" - ], - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "module": { - "enum": [ - "sec-2026", - "amla" - ], - "type": "string" - }, - "pre_effective": { - "type": "boolean" - }, - "summary": { - "properties": { - "fail": { - "type": "integer" - }, - "missing": { - "type": "integer" - }, - "not_assessed": { - "type": "integer" - }, - "pass": { - "type": "integer" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "open": { - "type": "integer" - }, - "overall": { - "enum": [ - "READY", - "AT_RISK", - "NOT_READY" - ], - "type": "string" - }, - "overdue_count": { - "type": "integer" - }, - "overdue_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "readiness_pct": { - "description": "delivered/total as a one-decimal percentage (IEEE-754 binary64, no intermediate rounding).", - "type": "number" - }, - "total": { - "type": "integer" - }, - "valid": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
assess_iso42001_aims_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_mar_crypto_surveillance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_mica_casp_readiness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_model_validation_status1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_psd3_readiness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_restaking_risk1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
assess_suspect_product_status1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "required_actions": { - "type": "array" - }, - "status": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
assess_traiga_exposure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
attest_bulk_disbursement_integrity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
attest_calc_agent_independence1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "calc_agent_id": { - "type": "string" - }, - "disclosure_note": { - "type": [ - "string", - "null" - ] - }, - "independence_asserted": { - "type": "boolean" - }, - "interested_parties": { - "items": { - "properties": { - "label": { - "type": "string" - }, - "party_id": { - "type": [ - "string", - "null" - ] - }, - "party_id_commitment_scheme": { - "type": "string" - }, - "party_role": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "note": { - "type": "string" - }, - "rejected_inputs": { - "type": "array" - }, - "relationship_declaration": { - "type": [ - "string", - "null" - ] - }, - "trigger_ref": { - "properties": { - "execution_hash": { - "type": [ - "string", - "null" - ] - }, - "tool_id": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
audit_acp_ucp_product_feed1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
audit_mcp_oauth1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "findings": { - "type": "array" - }, - "score": { - "type": "number" - } - }, - "type": "object" -}New value: +null
- Changed
audit_mcp_tool_scope_revocation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
baas_provider_comparator1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": {}, - "type": "object" -}New value: +null
- Changed
benchmark_tp_interquartile_range1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
bind_agreement_acceptance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
bind_attested_subject1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_226j_response_evidence_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_adverse_action_notice1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_agent_incident_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_agent_test_evidence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_agent_traffic_policy1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_ai_conformity_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_ai_decision_log_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_ai_training_data_lineage_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_ai_workpaper_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_allocation_decision_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_amortization_schedule1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_ap2_cartmandate_hashchain1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "cart_chain_intact": { - "type": [ - "boolean", - "null" - ] - }, - "cart_root": { - "type": [ - "string", - "null" - ] - }, - "chain_length": { - "type": "number" - }, - "chain_links": { - "items": { - "type": "string" - }, - "type": "array" - }, - "first_divergent_index": { - "type": [ - "number", - "null" - ] - }, - "note": { - "type": "string" - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "vdc": { - "type": [ - "object", - "null" - ] - }, - "vdc_type": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
build_art5_diligence_evidence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_cbcr_report1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "all_fatal_passed": { - "type": "boolean" - }, - "anomaly_flags": { - "type": "array" - }, - "checks": { - "items": { - "properties": { - "description": { - "type": "string" - }, - "id": { - "type": "string" - }, - "jurisdiction_code": { - "type": "string" - }, - "passed": { - "type": "boolean" - }, - "severity": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "export_mode": { - "type": "string" - }, - "fatal_failure_count": { - "type": "integer" - }, - "gate_status": { - "type": "string" - }, - "jurisdictions": { - "items": { - "properties": { - "accumulated_earnings": { - "type": "integer" - }, - "income_tax_accrued": { - "type": "integer" - }, - "income_tax_paid": { - "type": "integer" - }, - "jurisdiction_code": { - "type": "string" - }, - "number_of_employees": { - "type": "integer" - }, - "profit_before_tax": { - "type": "integer" - }, - "stated_capital": { - "type": "integer" - }, - "tangible_assets": { - "type": "integer" - }, - "total_revenue": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - "not_submittable": { - "type": "string" - }, - "orphan_entities": { - "type": "array" - }, - "schema_version": { - "type": "string" - }, - "xml_schema_skeleton": { - "properties": { - "reporting_entity": { - "properties": { - "entity_name": { - "type": "string" - }, - "tin": { - "type": "string" - } - }, - "type": "object" - }, - "root_element": { - "type": "string" - }, - "schema_version": { - "type": "string" - }, - "table1_jurisdiction_count": { - "type": "integer" - }, - "table2_entity_count": { - "type": "integer" - } - }, - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
build_claim_dispute_bundle1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_conditional_relief_collateral_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_conversion_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_digest_manifest1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_dora_roi_register1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_dual_control_certification1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_einvoice_transmission_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_etr_possession_chain1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_fria_monitoring_plan1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_google_ap2_mandate1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "findings": { - "type": "array" - }, - "mandate": { - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
build_idv_verification_incident_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_model_inventory_entry1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_no_russia_clause_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_pld_disclosure_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_product_lineage1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_public_money_settlement_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_rights_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_safeguarding_audit_evidence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_sanctions_screening_evidence_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_traiga_safe_harbor_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_validator_change_control_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
build_vop_session_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_basis_risk_nii_shock1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_cbam_embedded_emissions1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_cecl_ecl_allowance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_claims_stp_economics1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_csdr_penalty1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_erc2981_royalty1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_irrbb_eve_shocks1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_mica_own_funds1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_nis2_penalty_exposure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_repo_haircut1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "base_haircut_pct": { - "type": "number" - }, - "canton_haircut_pct": { - "type": "number" - }, - "flags": { - "type": "array" - }, - "initial_margin": { - "type": "number" - }, - "legacy_haircut_pct": { - "type": "number" - }, - "sft_floor_applied": { - "type": "boolean" - }, - "total_haircut_pct": { - "type": "number" - }, - "vm_threshold": { - "type": "number" - }, - "weekend_saving_pct": { - "type": "number" - } - }, - "type": "object" -}New value: +null
- Changed
calculate_solvency2_scr_ratio1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
calculate_xva1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
certify_license_election1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_agency_eligibility_matrix1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_agent_attestation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_agent_token_scope1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_allocation_affirmation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_assessor_independence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_camera_provenance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_capital_adequacy_private1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_card_act_ability_to_pay1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_cash_leg_finality1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "compliance_flags": { - "type": "object" - }, - "finality_flag": { - "type": "string" - }, - "genius_status": { - "type": "string" - }, - "mandate_type": { - "const": "attestation_mandate", - "type": "string" - }, - "mica_status": { - "type": "string" - }, - "verdict": { - "enum": [ - "CASH_LEG_VERDICT_PASS", - "CASH_LEG_VERDICT_CONDITIONAL", - "CASH_LEG_VERDICT_FAIL" - ], - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
check_client_porting1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_conforming_loan_limit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_cra_annex1_completeness1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "annex1_complete": { - "type": "boolean" - }, - "conformity_route": { - "type": "string" - }, - "gaps": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
check_credit_concentration_topn_sector1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_cscf_control_applicability1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_debt_validation_notice1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_digital_trade_rules1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_etr_control_evidence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_fatca_crs_submission_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_fido_pqc_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_g20_corridor_cost_gap1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_genius_reserve_disclosure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_genius_reserve_disclosure_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_gpai_code_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_icm_quorum_forgery_risk1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_ifrs17_risk_adjustment1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_iolta_three_way_reconciliation1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "clause_note": { - "type": "string" - }, - "client_count": { - "type": "integer" - }, - "client_ledgers": { - "items": { - "properties": { - "as_of": { - "type": "string" - }, - "client_id": { - "type": "string" - }, - "ending_balance_minor": { - "type": "integer" - }, - "entry_count": { - "type": "integer" - }, - "low_point_date": { - "type": "string" - }, - "low_point_minor": { - "type": "integer" - }, - "opening_balance_minor": { - "type": "integer" - } - }, - "type": "object" - }, - "type": "array" - }, - "decision": { - "properties": { - "execution_state": { - "type": "string" - }, - "gate_policy": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "type": "object" - }, - "findings": { - "type": "array" - }, - "negative_balance_findings": { - "type": "array" - }, - "outstanding_items": { - "items": { - "properties": { - "age_bucket": { - "type": "string" - }, - "age_days": { - "type": "integer" - }, - "amount_minor": { - "type": "integer" - }, - "date": { - "type": "string" - }, - "description": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "outstanding_summary": { - "type": "object" - }, - "period_boundary_consistent": { - "type": "boolean" - }, - "period_boundary_mismatches": { - "type": "array" - }, - "reconciliation_tolerance_minor": { - "type": "integer" - }, - "rejected_inputs": { - "type": "array" - }, - "scope_note": { - "type": "string" - }, - "statement_period": { - "properties": { - "end_date": { - "type": "string" - }, - "start_date": { - "type": "string" - } - }, - "type": "object" - }, - "three_way": { - "properties": { - "adjusted_bank_balance_minor": { - "type": "integer" - }, - "bank_ending_balance_minor": { - "type": "integer" - }, - "bank_vs_clients_minor": { - "type": "integer" - }, - "bank_vs_trust_minor": { - "type": "integer" - }, - "client_ledger_total_minor": { - "type": "integer" - }, - "deposits_in_transit_total_minor": { - "type": "integer" - }, - "equality_holds": { - "type": "boolean" - }, - "trust_ledger_ending_balance_minor": { - "type": "integer" - }, - "trust_vs_clients_minor": { - "type": "integer" - }, - "uncleared_checks_total_minor": { - "type": "integer" - } - }, - "type": "object" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
check_irrbb_csrbb_scope1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_iso20022_pqc_readiness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_jwks_pinned_directory1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "computed_digest": { - "description": "sha256(canonicalize(directory_jwks)), lowercase hex.", - "type": "string" - }, - "digest_match": { - "type": "boolean" - }, - "key_count": { - "type": "number" - }, - "pinned_digest": { - "type": [ - "string", - "null" - ] - }, - "pinned_digest_well_formed": { - "description": "True only if pinned_digest is present and matches 64 lowercase-or-mixed-case hex characters.", - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
check_lei_relationship_consistency1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_license_compatibility1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_linea_l2_finality_window1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_mcp_registry_entry1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_mica_register_presence1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "entity_identifier": { - "type": [ - "string", - "null" - ] - }, - "fence": { - "type": "string" - }, - "judgment_required": { - "type": [ - "object", - "null" - ] - }, - "match_count": { - "type": "number" - }, - "match_found": { - "type": [ - "boolean", - "null" - ] - }, - "matched_row": { - "type": [ - "string", - "null" - ] - }, - "matched_rows": { - "items": { - "type": "object" - }, - "type": "array" - }, - "not_proven": { - "items": { - "type": "object" - }, - "type": "array" - }, - "rationale": { - "items": { - "type": "string" - }, - "type": "array" - }, - "register_label": { - "type": [ - "string", - "null" - ] - }, - "register_snapshot_digest": { - "type": [ - "string", - "null" - ] - }, - "register_source_ref": { - "type": [ - "string", - "null" - ] - }, - "register_type": { - "type": [ - "string", - "null" - ] - }, - "retrieval_date": { - "type": [ - "string", - "null" - ] - }, - "search": { - "type": "object" - }, - "snapshot": { - "type": "object" - }, - "verdict": { - "type": [ - "string", - "null" - ] - }, - "verdict_unavailable_reason": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
check_mica_reserve_disclosure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_muni_arbitrage_spending_exception1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_nis2_art21_measures1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_nway_balance_closure1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "as_of_consistent": { - "type": "boolean" - }, - "as_of_values": { - "items": { - "type": "string" - }, - "type": "array" - }, - "authoritative_system_id": { - "type": "string" - }, - "boundary_note": { - "type": "string" - }, - "break_pairs": { - "type": "array" - }, - "closure_holds": { - "type": "boolean" - }, - "closure_tolerance_minor": { - "type": "integer" - }, - "decision": { - "properties": { - "execution_state": { - "type": "string" - }, - "gate_policy": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "type": "object" - }, - "declared_disagreements": { - "type": "array" - }, - "max_abs_residual_minor": { - "type": "integer" - }, - "measure_label": { - "type": "string" - }, - "pairwise": { - "items": { - "properties": { - "against_authoritative": { - "type": "boolean" - }, - "balance_difference_minor": { - "type": "integer" - }, - "declared_agrees_with_balances": { - "type": "boolean" - }, - "declared_difference_minor": { - "type": "integer" - }, - "declared_vs_balance_delta_minor": { - "type": "integer" - }, - "difference_basis": { - "type": "string" - }, - "difference_minor": { - "type": "integer" - }, - "pair": { - "type": "string" - }, - "system_a": { - "type": "string" - }, - "system_b": { - "type": "string" - }, - "within_tolerance": { - "type": "boolean" - } - }, - "type": "object" - }, - "type": "array" - }, - "rejected_inputs": { - "type": "array" - }, - "scope_note": { - "type": "string" - }, - "suspect_systems": { - "type": "array" - }, - "system_count": { - "type": "integer" - }, - "systems": { - "items": { - "properties": { - "as_of": { - "type": "string" - }, - "balance_minor": { - "type": "integer" - }, - "is_authoritative": { - "type": "boolean" - }, - "system_id": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "triple_count": { - "type": "integer" - }, - "triples": { - "items": { - "properties": { - "leg_ab_minor": { - "type": "integer" - }, - "leg_ac_minor": { - "type": "integer" - }, - "leg_bc_minor": { - "type": "integer" - }, - "residual_basis": { - "type": "string" - }, - "residual_minor": { - "type": "integer" - }, - "systems": { - "items": { - "type": "string" - }, - "type": "array" - }, - "triple": { - "type": "string" - }, - "within_tolerance": { - "type": "boolean" - } - }, - "type": "object" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
check_official_statement_completeness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_operator_exit_portability1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_private_student_loan_disclosures1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_producer_license_reciprocity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_purpose_code_requirement1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_qm_points_and_fees1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_reg_e_remittance_disclosure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_retail_installment_disclosures1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_safeguarding_reconciliation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_sb53_frontier_scope1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_screening_list_coverage1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_securitization_risk_retention1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_sod_matrix1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_ssi_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
check_tokenized_collateral_eligibility1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "adjusted_value": { - "type": "number" - }, - "compliance_flags": { - "type": "object" - }, - "dtc_status": { - "type": "string" - }, - "final_haircut_pct": { - "type": "number" - }, - "hqla_tier": { - "type": "string" - }, - "mandate_type": { - "const": "collateral_mandate", - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
check_webbotauth_nonce_replay1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "already_used": { - "type": "boolean" - }, - "format_ok": { - "type": "boolean" - }, - "fresh": { - "type": [ - "boolean", - "null" - ] - }, - "nonce_valid": { - "type": "boolean" - }, - "spread_ok": { - "type": [ - "boolean", - "null" - ] - }, - "verdict": { - "enum": [ - "ACCEPT", - "REFUSE" - ], - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
check_x402_domain_nonce_window1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "authorization_expired": { - "type": [ - "boolean", - "null" - ] - }, - "authorization_not_yet_valid": { - "type": [ - "boolean", - "null" - ] - }, - "authorization_within_window": { - "type": [ - "boolean", - "null" - ] - }, - "disclosure": { - "type": "string" - }, - "domain_chain_match": { - "type": [ - "boolean", - "null" - ] - }, - "domain_contract_match": { - "type": [ - "boolean", - "null" - ] - }, - "expected": { - "properties": { - "expected_chain_id": { - "type": [ - "string", - "null" - ] - }, - "expected_verifying_contract": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - }, - "nonce": { - "type": [ - "string", - "null" - ] - }, - "nonce_already_used": { - "type": [ - "boolean", - "null" - ] - }, - "nonce_well_formed": { - "type": [ - "boolean", - "null" - ] - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "signed_domain": { - "properties": { - "chain_id": { - "type": [ - "string", - "null" - ] - }, - "verifying_contract": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - }, - "verdict": { - "type": "string" - }, - "window": { - "properties": { - "now_unix": { - "type": [ - "string", - "null" - ] - }, - "valid_after": { - "type": [ - "string", - "null" - ] - }, - "valid_before": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
choose_cc_license1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_agentic_ai_risk1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_ai_system_governance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_annex3_decisioning_obligations1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_avax_permissioning_controls1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_blockchain_quantum_risk1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_bold_challenge_finality1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_carf_reportable1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_codm_expense_significance1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "assessed_significant": { - "type": "boolean" - }, - "basis": { - "type": "string" - }, - "bucket_c_scope_note": { - "type": "string" - }, - "citation": { - "type": "string" - }, - "easily_computable_from_codm_information": { - "type": "boolean" - }, - "evaluated_under_50_26A": { - "type": "boolean" - }, - "folds_into_other_segment_items_50_26B": { - "type": "boolean" - }, - "included_in_segment_profit_measure": { - "type": "boolean" - }, - "input_outside_declared_domain": { - "type": "boolean" - }, - "must_disclose_separately_50_26A": { - "type": "boolean" - }, - "other_segment_items_buckets": { - "items": { - "type": "string" - }, - "type": "array" - }, - "outside_significant_expense_principle": { - "type": "boolean" - }, - "regularly_provided_to_codm": { - "type": "boolean" - }, - "segment_level_duties_not_decided_here": { - "type": "string" - }, - "separate_disclosure_required_50_22": { - "type": "boolean" - }, - "specified_item_50_22": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
classify_digital_asset_regulatory1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "classification_results": { - "type": "array" - }, - "compliance_flags": { - "type": "object" - }, - "iso20022_party_identification": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
classify_dora_ict_incident_and_clock_deadlines1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_dora_incident1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "competent_authority_note": { - "type": "string" - }, - "cross_border": { - "type": "boolean" - }, - "determination_code": { - "type": "string" - }, - "entity_type": { - "type": "string" - }, - "incident_type": { - "type": "string" - }, - "major_incident": { - "type": "boolean" - }, - "qualifying_criteria": { - "items": { - "type": "string" - }, - "type": "array" - }, - "regulatory_framework": { - "type": "string" - }, - "reporting_clock": { - "properties": { - "classification_datetime": { - "type": "string" - }, - "detection_datetime": { - "type": "string" - }, - "final_report_deadline": { - "type": "string" - }, - "initial_notification_deadline": { - "type": "string" - }, - "intermediate_report_deadline": { - "type": "string" - } - }, - "type": "object" - }, - "third_party_ict": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
classify_eccn_dual_use1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_emir3_active_account_status1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_emir3_simm_approval_scope1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_erc1967_proxy_slot1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_eudr_commodity_scope1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_ifrs17_measurement_model1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_ledger_consensus_finality1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_mla_charge_inclusion1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "basis": { - "type": [ - "string", - "null" - ] - }, - "charge_type": { - "type": [ - "string", - "null" - ] - }, - "citation": { - "type": [ - "string", - "null" - ] - }, - "conditional_limit_usd": { - "type": [ - "number", - "null" - ] - }, - "included_in_mapr": { - "type": [ - "boolean", - "string", - "null" - ] - }, - "is_credit_card_account": { - "type": "boolean" - }, - "manual_review_reason": { - "type": [ - "string", - "null" - ] - }, - "manual_review_required": { - "type": "boolean" - }, - "short_term_exception_claimed": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
classify_nis2_entity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_qm_apr_apor_spread1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_rate_rec_5pct_threshold1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "basis": { - "type": "string" - }, - "break_even_judgment_note": { - "type": "string" - }, - "category_recognized": { - "type": "boolean" - }, - "citation": { - "type": "string" - }, - "crosses_5pct_threshold": { - "type": [ - "boolean", - "null" - ] - }, - "denominator_near_zero_caveat": { - "type": [ - "string", - "null" - ] - }, - "disaggregation_citation": { - "type": [ - "string", - "null" - ] - }, - "entity_is_public_business_entity": { - "type": "boolean" - }, - "management_judgment_required": { - "type": "boolean" - }, - "must_disclose_separately": { - "type": [ - "boolean", - "null" - ] - }, - "not_assessable_reason": { - "type": [ - "string", - "null" - ] - }, - "pct_of_threshold_base": { - "type": [ - "number", - "null" - ] - }, - "pretax_income": { - "type": [ - "number", - "null" - ] - }, - "reconciling_item_amount": { - "type": [ - "number", - "null" - ] - }, - "reconciling_item_category": { - "type": [ - "string", - "null" - ] - }, - "required_disaggregation": { - "type": [ - "string", - "null" - ] - }, - "statutory_rate_pct": { - "type": [ - "number", - "null" - ] - }, - "threshold_amount": { - "type": [ - "number", - "null" - ] - }, - "threshold_base_amount": { - "type": [ - "number", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
classify_redline_round_changes1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "attribution_note": { - "type": "string" - }, - "classifications": { - "items": { - "properties": { - "baseline_text": { - "type": [ - "string", - "null" - ] - }, - "changed": { - "type": "boolean" - }, - "classification": { - "type": "string" - }, - "current_text": { - "type": [ - "string", - "null" - ] - }, - "diff": { - "items": { - "properties": { - "op": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "prior_text": { - "type": [ - "string", - "null" - ] - }, - "segment_id": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "diff_transcript": { - "items": { - "properties": { - "classification": { - "type": "string" - }, - "diff": { - "type": "array" - }, - "segment_id": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "reason": { - "type": [ - "string", - "null" - ] - }, - "rejected_inputs": { - "type": "array" - }, - "round_chain": { - "properties": { - "prior_round_digest": { - "type": [ - "string", - "null" - ] - }, - "round_number": { - "type": [ - "integer", - "null" - ] - }, - "status": { - "type": "string" - } - }, - "type": "object" - }, - "round_summary": { - "properties": { - "accepted_count": { - "type": "integer" - }, - "changed_count": { - "type": "integer" - }, - "deleted_count": { - "type": "integer" - }, - "document_id": { - "type": [ - "string", - "null" - ] - }, - "modified_count": { - "type": "integer" - }, - "new_count": { - "type": "integer" - }, - "reverted_count": { - "type": "integer" - }, - "round_label": { - "type": [ - "string", - "null" - ] - }, - "round_number": { - "type": [ - "integer", - "null" - ] - }, - "total_segments": { - "type": "integer" - } - }, - "type": "object" - }, - "scope_note": { - "type": "string" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
classify_reward_flow_related_party1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_safeguarding_method1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_sco60_exposure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_settlement_asset_finality1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_settlement_finality1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
classify_t1_posttrade_timing1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compare_agentic_payment_protocols1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "crosswalk": { - "type": "array" - }, - "matrix": { - "type": "array" - }, - "recommendation": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
compare_agentic_rail_protocols1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compare_basel_2023_vs_20261 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compare_corridor_cost1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compare_cross_ccp_pqd_fields1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compare_model_outcome_analysis1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compare_pension_lump_sum_annuity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compare_receivables_finance_economics1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compare_rights_matrix1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compile_nav_error_evidence_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compile_rebalance_evidence_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compile_work_mandate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compose_ap2_prompt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compose_control_test_evidence1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "control_id": { - "type": "string" - }, - "coverage_complete": { - "type": "boolean" - }, - "deficiency": { - "type": "string" - }, - "exception_count": { - "type": "integer" - }, - "exception_rate": { - "type": "integer" - }, - "extra_results": { - "type": "array" - }, - "fail_count": { - "type": "integer" - }, - "gate_status": { - "type": "string" - }, - "missing_results": { - "type": "array" - }, - "not_a_severity_judgment": { - "type": "string" - }, - "pass_count": { - "type": "integer" - }, - "population_hash": { - "type": "string" - }, - "reporting_period": { - "type": "string" - }, - "sample_size": { - "type": "integer" - }, - "test_conclusion": { - "type": "string" - }, - "tested_count": { - "type": "integer" - }, - "tester_id": { - "type": "string" - }, - "tester_role": { - "type": "string" - }, - "tolerable_exception_count": { - "type": "integer" - }, - "within_tolerance": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
compose_eval_attestation_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compose_globe_gir1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compose_workpaper_bundle1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "disposed_exception_count": { - "type": "integer" - }, - "exception_count": { - "minimum": 0, - "type": "integer", - "x-source": { - "kind": "manifest", - "note": "self-evident: exception_count = exceptions.length (chaingraph/kernels/art-465-workpaper-bundle-composer.kernel.mjs, compute()) — a count of the exceptions array declared in this same output_schema, non-negative by definition, not an external regulatory citation.", - "ref": "art-465-workpaper-bundle-composer@1.0.0 compute()" - } - }, - "exceptions": { - "items": { - "properties": { - "disposed_by_role": { - "type": "string" - }, - "disposition": { - "type": "string" - }, - "item_id": { - "type": "string" - }, - "reason_code": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "kernel_artifact_count": { - "type": "integer" - }, - "kernel_artifacts": { - "items": { - "properties": { - "execution_hash": { - "type": "string" - }, - "tool_id": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "malformed_kernel_artifacts": { - "type": "array" - }, - "population_hash": { - "type": "string" - }, - "procedure_id": { - "type": "string" - }, - "roles": { - "properties": { - "partner": { - "properties": { - "declared": { - "type": "boolean" - }, - "gate_status": { - "type": "string" - }, - "role": { - "type": "string" - }, - "statement": { - "type": "string" - } - }, - "type": "object" - }, - "preparer": { - "properties": { - "declared": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "statement": { - "type": "string" - } - }, - "type": "object" - }, - "reviewer": { - "properties": { - "declared": { - "type": "boolean" - }, - "role": { - "type": "string" - }, - "statement": { - "type": "string" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "undisposed_exceptions": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
compute_15c3_3_reserve1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_aca_affordability_safe_harbor1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_annuity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_asset_liability_coverage1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_authzen_conformance_fixture1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "all_context_invariant": { - "type": "boolean" - }, - "all_match_expected": { - "type": [ - "boolean", - "null" - ] - }, - "decision_count": { - "type": "number" - }, - "decisions": { - "items": { - "properties": { - "action": { - "type": "object" - }, - "context_invariant": { - "type": "boolean" - }, - "decision": { - "type": "boolean" - }, - "expected": { - "type": [ - "boolean", - "null" - ] - }, - "index": { - "type": "number" - }, - "matches_expected": { - "type": [ - "boolean", - "null" - ] - }, - "name": { - "type": "string" - }, - "resource": { - "type": "object" - }, - "subject": { - "type": "object" - } - }, - "type": "object" - }, - "type": "array" - }, - "spec": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
compute_basel_haircut_adjusted_exposure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_bond_duration1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_breakeven1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_canton_app_reward_estimate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_canton_traffic_cost1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_cdd_ownership_25pct1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_cfpb_1071_coverage1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_convexity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_counterparty_limit_check1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_cross_border_fees1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_custody_segregation_ratio1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "custody_location_breakdown": { - "type": "object" - }, - "formula": { - "type": "string" - }, - "line_items": { - "items": { - "properties": { - "asset_class": { - "type": "string" - }, - "customer_claims_musd": { - "type": "number" - }, - "segregated_custody_assets_musd": { - "type": "number" - }, - "segregation_ratio": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "note": { - "type": "string" - }, - "over_segregation_ceiling": { - "type": [ - "number", - "null" - ] - }, - "segregation_ratio": { - "type": [ - "number", - "null" - ] - }, - "status": { - "type": "string" - }, - "total_claims_musd": { - "type": "number" - }, - "total_segregated_musd": { - "type": "number" - } - }, - "type": "object" -}New value: +null
- Changed
compute_cyber_incident_notification_clock1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_deterministic_amortization_schedule1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "bounds": { - "type": "object" - }, - "convention": { - "type": [ - "string", - "null" - ] - }, - "day_count_source": { - "type": [ - "string", - "null" - ] - }, - "final_plug": { - "type": [ - "object", - "null" - ] - }, - "note": { - "type": "string" - }, - "periods_per_year": { - "type": "number" - }, - "rate_solve": { - "type": [ - "object", - "null" - ] - }, - "remeasurement": { - "type": [ - "object", - "null" - ] - }, - "rounding_steps": { - "type": "array" - }, - "schedule": { - "type": [ - "array", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
compute_discount_window_capacity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_disparity_metrics1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_dora_roi_gleif_preflight_pack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_dscr1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_dti_ratios1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_dv011 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_escrow_analysis1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_esrp_exposure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_experience_mod1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_fdic_assessment_rate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_federal_withholding1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_fha_mip_eligibility1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_flsa_regular_rate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_forecast_accuracy_score1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_fr2052a_inflow_outflow_classification1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_fund_expense_ratios1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_fx_netting_positions1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_globe_jurisdictional_etr1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_globe_sbie_topup1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_globe_topup_tax1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_gross_to_net1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_hmda_rate_spread1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_identity_proofing_assurance_level1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_index_weights1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_intraday_liquidity_monitoring1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_ipfs_cid1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_irr1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_large_exposures_limit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_lcm_rate_derivation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_lcr_nsfr_leverage1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_llpa_stack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_loan_servicing_waterfall_recompute1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "application_order": { - "type": [ - "array", - "null" - ] - }, - "computed_applied_by_bucket": { - "type": [ - "object", - "null" - ] - }, - "core_applied": { - "type": [ - "object", - "null" - ] - }, - "missing_inputs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "payment_amount": { - "type": [ - "integer", - "null" - ] - }, - "per_bucket_deltas": { - "items": { - "properties": { - "bucket": { - "type": "string" - }, - "computed_applied": { - "type": "integer" - }, - "core_applied": { - "type": "integer" - }, - "delta": { - "type": "integer" - }, - "in_declared_order": { - "type": "boolean" - } - }, - "type": "object" - }, - "type": "array" - }, - "unapplied_remainder": { - "type": [ - "integer", - "null" - ] - }, - "verdict": { - "enum": [ - "MATCHES", - "DIVERGES", - "INDETERMINATE" - ], - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
compute_ltv_ratios1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_mla_mapr1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_mlr_rebate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_multilateral_netting1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_note_h_margin_debit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_npv1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_oprisk_sma_20261 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_options_greeks1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_parametric_trigger_payout1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_perp_funding1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_perp_funding_implied_yield1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_perp_margin1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_por_liabilities_composite1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "composite_determination": { - "type": "string" - }, - "computed_root": { - "properties": { - "sum": { - "type": "number" - } - }, - "type": "object" - }, - "formula": { - "type": "string" - }, - "inclusion_verified": { - "type": "boolean" - }, - "liabilities_attestation_source": { - "type": [ - "string", - "null" - ] - }, - "not_proven": { - "items": { - "properties": { - "detail": { - "type": "string" - }, - "item": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "note": { - "type": "string" - }, - "por_input_supplied": { - "type": "boolean" - }, - "regulatory_framework": { - "type": "string" - }, - "reported_total_liabilities_musd": { - "type": [ - "number", - "null" - ] - }, - "reserve_to_liability_ratio": { - "type": [ - "number", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
compute_portfolio_var1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_pqc_deadline_ladder1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_pt_yt_yield1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_raroc_loan_price1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_rbc_action_level1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_rbc_action_level_private1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_reg_z_appendix_j_apr1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_remittance_disclosure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_rwa_erba_20261 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_rwa_scenarios1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_scra_rate_cap1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_settlement_efficiency_kpi1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_stock_token_collateral_haircut1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_stress_test_scenarios1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_tempo_mainnet_fee_capacity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_trid_tolerance_cure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_va_funding_fee_residual1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_var_backtest_traffic_light1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
compute_verify_receipt1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "errors": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
compute_wash_sale_window_guard1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "disallowed_loss": { - "description": "The declared realized loss rounded 2dp half-up when the window is non-empty, otherwise 0.", - "type": "number" - }, - "ira_trap": { - "description": "True when an in-window replacement purchase is declared in a tax-deferred account.", - "type": "boolean" - }, - "overall": { - "description": "Sign-of-arithmetic verdict over the declared window arithmetic only.", - "enum": [ - "WASH_SALE_FLAGGED", - "WASH_SALE_CLEAR" - ], - "type": "string" - }, - "replacements_in_window": { - "description": "Count of declared replacement purchases with dates inside the inclusive 61-day window.", - "type": "integer" - }, - "trace": { - "description": "Human-readable restatement of the declared arithmetic.", - "type": "string" - }, - "warnings": { - "description": "Conditional warning flags mirrored into the payload; present only when one fired (WSG_IRA_TRAP).", - "items": { - "type": "string" - }, - "type": "array" - }, - "window_end": { - "description": "Sale date plus 30 days, ISO yyyy-mm-dd; window endpoint is inclusive.", - "type": "string" - }, - "window_start": { - "description": "Sale date minus 30 days, ISO yyyy-mm-dd; window endpoint is inclusive.", - "type": "string" - } - }, - "required": [ - "window_start", - "window_end", - "replacements_in_window", - "disallowed_loss", - "ira_trap", - "trace", - "overall" - ], - "type": "object" -}New value: +null
- Changed
compute_xirr1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
convert_markdown_document1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
convert_tabular_data1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
convert_tempo_fee_amm1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
correlate_ap2_cartmandate_x4021 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "cart_chain_intact": { - "type": "boolean" - }, - "cart_total_matches_authorization_value": { - "type": [ - "boolean", - "null" - ] - }, - "correlation_status": { - "enum": [ - "CORRELATED", - "NOT_CORRELATED", - "INDETERMINATE" - ], - "type": "string" - }, - "disclosure": { - "type": "string" - }, - "merchant_matches_authorization_to": { - "type": [ - "boolean", - "null" - ] - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
currency_basket_index1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "amount_scale": { - "type": "number" - }, - "as_of_date": { - "type": [ - "string", - "null" - ] - }, - "basket_id": { - "type": [ - "string", - "null" - ] - }, - "basket_shift_pct": { - "type": [ - "number", - "null" - ] - }, - "component_count": { - "type": "number" - }, - "components": { - "items": { - "properties": { - "currency": { - "type": [ - "string", - "null" - ] - }, - "drift_from_target_pct": { - "type": [ - "number", - "null" - ] - }, - "fixed_amount": { - "type": [ - "number", - "null" - ] - }, - "live_weight_pct": { - "type": [ - "number", - "null" - ] - }, - "target_weight_pct": { - "type": [ - "number", - "null" - ] - }, - "usd_contribution": { - "type": [ - "number", - "null" - ] - }, - "usd_rate": { - "type": [ - "number", - "null" - ] - } - }, - "type": "object" - }, - "type": "array" - }, - "dominant_contribution_pct": { - "type": [ - "number", - "null" - ] - }, - "dominant_contributor": { - "type": [ - "string", - "null" - ] - }, - "fence": { - "type": "string" - }, - "index_value": { - "type": [ - "number", - "null" - ] - }, - "max_drift_from_target_pct": { - "type": [ - "number", - "null" - ] - }, - "mode": { - "type": [ - "string", - "null" - ] - }, - "not_proven": { - "type": "array" - }, - "parent_print_hashes": { - "type": "array" - }, - "rejected_inputs": { - "type": "array" - }, - "structural_error": { - "type": [ - "string", - "null" - ] - }, - "target_weight_sum": { - "type": [ - "number", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
customer_risk_rating1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "breakdown": { - "type": "array" - }, - "compositeScore": { - "type": "number" - }, - "mandateJson": { - "type": "object" - }, - "riskTier": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
decode_c2pa_aiml_assertions1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "actions": { - "items": { - "properties": { - "action": { - "type": [ - "string", - "null" - ] - }, - "digital_source_type": { - "type": [ - "string", - "null" - ] - }, - "software_agent": { - "type": [ - "string", - "null" - ] - }, - "when": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - }, - "type": "array" - }, - "digital_source_type_summary": { - "items": { - "type": "string" - }, - "type": "array" - }, - "note": { - "type": "string" - }, - "training_mining_opt_out": { - "type": [ - "boolean", - "string" - ] - }, - "unrecognized_source_types": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
decode_eip7702_authorization_tuple1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "authorization_tuple_hash": { - "type": [ - "string", - "null" - ] - }, - "chain_id": { - "type": [ - "number", - "null" - ] - }, - "cross_chain_authorization": { - "type": [ - "boolean", - "null" - ] - }, - "delegate_address": { - "type": [ - "string", - "null" - ] - }, - "nonce": { - "type": [ - "number", - "null" - ] - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "recovered_signer": { - "type": [ - "string", - "null" - ] - }, - "recovery_id": { - "type": [ - "number", - "null" - ] - }, - "recovery_id_source": { - "type": [ - "string", - "null" - ] - }, - "scope_note": { - "type": "string" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
decode_mpp_session1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
decode_x402_payment1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "decoded": { - "type": "object" - }, - "findings": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
derive_beacon_fair_sample1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
derive_parametric_index_from_receipts1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Added
describe_tool - Changed
detect_timeseries_anomalies1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
detect_transaction_anomalies1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
determine_deposit_insurance_coverage1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
diagnose_canton_readiness1 field changed- changed
Output schema / (root)Previous 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", - "settlement_ops" - ], - "type": "string" - }, - "type": "array" - }, - "total_score": { - "type": "number" - }, - "verdict": { - "type": "string" - } - }, - "required": [ - "domain_scores", - "gaps", - "total_score", - "verdict" - ], - "type": "object" -}New value: +null
- Changed
digest_gleif_snapshot1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
dispose_carf_status_message1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
estimate_cross_margin_benefit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
estimate_cross_venue_margin_capital1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
estimate_ficc_margin_netting1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
evaluate_decision_tree1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "bounds": { - "type": "object" - }, - "closed_operator_set": { - "items": { - "type": "string" - }, - "type": "array" - }, - "error_code": { - "type": [ - "string", - "null" - ] - }, - "matched_citation": { - "type": [ - "object", - "null" - ] - }, - "matched_node_id": { - "type": [ - "string", - "null" - ] - }, - "message": { - "type": [ - "string", - "null" - ] - }, - "path": { - "items": { - "type": "string" - }, - "type": "array" - }, - "scope_note": { - "type": "string" - }, - "tree_digest_recomputed": { - "type": [ - "string", - "null" - ] - }, - "tree_id": { - "type": [ - "string", - "null" - ] - }, - "tree_version": { - "type": [ - "string", - "null" - ] - }, - "verdict": { - "type": [ - "string", - "null" - ] - }, - "weight": {} - }, - "type": "object" -}New value: +null
- Changed
evaluate_globe_de_minimis_exclusion1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
evaluate_globe_safe_harbour_tests1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
evaluate_irrbb_sot_eve1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
evaluate_irrbb_sot_nii1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
examine_lc_document_presentation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
explain_regrpt_variance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
find_prediction_arbitrage1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
generate_attribution_string1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
generate_iscc_code1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
generate_zk_compliance_proof1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
inspect_visa_tap_signature1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "findings": { - "type": "array" - }, - "parsed": { - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
inspect_visa_trusted_agent_protocol1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
link_eudr_supply_chain_traceability1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
link_traceability_lot_code1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_ab2013_training_data_disclosure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_aiuc1_control_evidence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_arc_xreserve_config1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_besu_settlement_contract1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_cbom_structure1 field changed- changed
Output schema / (root)Previous 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", - "null" - ] - }, - "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" -}New value: +null
- Changed
lint_cbpr_structured_address1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_compelling_evidence_ce30_agentic1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_crypto_asset_whitepaper1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_fedwire_structured_address1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_insurance_evidence_freshness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_lei_payment_binding1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_mcp_server_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_mcp_tool_definition1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "annotations": { - "type": "object" - }, - "findings": { - "items": { - "type": "object" - }, - "type": "array" - }, - "score": { - "type": "number" - } - }, - "type": "object" -}New value: +null
- Changed
lint_metro2_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_mismo_uldd_ulad1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_securities_settlement_message1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_settlement_orchestrator_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_stock_token_valuation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_trace_cat_reports1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_ucp_checkout_payload1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_x12_claim_records1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lint_x402_v2_migration1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lookup_mletr_jurisdiction_adoption1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
lookup_reg_z_thresholds1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_agent_payment_mandate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_ai_act_procurement_clauses1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_bhc_schedule_hc1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_bhc_schedule_hcr1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_call_report_schedule_rc1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_call_report_schedule_rcr1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_irrbb_standardised_approach1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_iso20022_to_evm_calldata1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_mt9xx_to_camt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_nist_ai_rmf_functions1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_nmd_behavioral_repricing1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_pil_flavor1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_robinhood_chain_regime1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
map_tempo_settlement1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
match_confirmations1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
mobilize_margin_collateral1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_agent_service_metering1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_arc_cpn_economics1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "compliance_flags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rail": { - "type": "string" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
model_arc_paymaster_economics1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "compliance_flags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
model_arc_stablefx_rfq1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "compliance_flags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
model_buy_in_exposure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_cbam_certificate_cost1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_clearing_access_economics1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_l1_fee_runway1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_perp_position1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_stablecoin_corridor_economics1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_tempo_gas_economics1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_tempo_payment_economics1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
model_x402_settlement1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "eligible_rails": { - "items": { - "type": "string" - }, - "type": "array" - }, - "finality_sec": { - "type": "integer" - }, - "monthly_cost_usd": { - "type": "integer" - }, - "per_tx_fee_usd": { - "type": "number" - }, - "recommended_rail": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
optimize_settlement_capital1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
optimize_social_security_claim_age1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
oracle_price_aggregation1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "aggregate_confidence": { - "type": [ - "number", - "null" - ] - }, - "aggregated_price": { - "type": [ - "number", - "null" - ] - }, - "aggregation_method": { - "type": [ - "string", - "null" - ] - }, - "chain_position": { - "type": "string" - }, - "currency_pair": { - "type": [ - "string", - "null" - ] - }, - "epoch": { - "type": [ - "number", - "null" - ] - }, - "fault_tolerance": { - "type": [ - "object", - "null" - ] - }, - "fence": { - "type": "string" - }, - "max_submitted": { - "type": [ - "number", - "null" - ] - }, - "min_submitted": { - "type": [ - "number", - "null" - ] - }, - "not_proven": { - "type": "array" - }, - "outlier_count": { - "type": "number" - }, - "outlier_detail": { - "type": "array" - }, - "outlier_threshold_pct": { - "type": [ - "number", - "null" - ] - }, - "outliers_flagged": { - "type": "array" - }, - "prev_print_hash": { - "type": "string" - }, - "price_spread_pct": { - "type": [ - "number", - "null" - ] - }, - "priced_submission_count": { - "type": "number" - }, - "rejected_inputs": { - "type": "array" - }, - "stale_submissions": { - "type": "array" - }, - "structural_error": { - "type": [ - "string", - "null" - ] - }, - "submission_count": { - "type": "number" - }, - "surviving_count": { - "type": [ - "number", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
parse_camt053_reconciliation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
plan_aml_disposition_sample1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
plan_attribute_sample1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
plan_tls_pki_migration1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
precheck_reserve_attestation1 field changed- changed
Output schema / (root)Previous value: -{ - "additionalProperties": false, - "properties": { - "aicpa_2025_score_pct": { - "type": "number" - }, - "applicable_deadline": { - "type": "string" - }, - "asset_results": { - "items": { - "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" - }, - "type": "array" - }, - "attestation_readiness_determination": { - "enum": [ - "FAIL", - "INDETERMINATE", - "PASS" - ], - "type": "string" - }, - "conditional_assets_usd": { - "type": "number" - }, - "coverage_ratio_pct": { - "type": [ - "null", - "number" - ] - }, - "failing_dimensions": { - "items": { - "additionalProperties": false, - "properties": { - "detail": { - "type": "string" - }, - "dim": { - "type": "string" - }, - "ref": { - "type": "string" - } - }, - "required": [ - "detail", - "dim", - "ref" - ], - "type": "object" - }, - "type": "array" - }, - "prohibited_assets_usd": { - "type": "number" - }, - "regulatory_framework": { - "type": "string" - }, - "reserve_shortfall_usd": { - "type": [ - "null", - "number" - ] - }, - "total_liabilities_usd": { - "type": "number" - }, - "total_reserves_usd": { - "type": "number" - }, - "warnings": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "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" - ], - "type": "object", - "x_schema_provenance": "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)" -}New value: +null
- Changed
predict_settlement_fail1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
prevalidation_readiness_scorer1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
price_embedded_insurance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
prove_metadata_sanitization1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
publish_fund_nav_head1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
publish_index_head1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
publish_market_mark_head1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
publish_model_risk_head1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
rdarr_aggregation_recompute1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
rdarr_quality_scorecard1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_best_execution1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_ccd2_aprc_annex31 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "aprc_pct": { - "type": [ - "number", - "null" - ] - }, - "bracketed": { - "type": "boolean" - }, - "converged": { - "type": "boolean" - }, - "drawdown_total": { - "type": "number" - }, - "iterations_used": { - "type": "number" - }, - "num_drawdowns": { - "type": "number" - }, - "num_repayments": { - "type": "number" - }, - "repayment_total": { - "type": "number" - }, - "residual_at_convergence": { - "type": [ - "number", - "null" - ] - }, - "total_charge": { - "type": "number" - } - }, - "type": "object" -}New value: +null
- Changed
recompute_ccp_default_waterfall1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_certified_payroll_pwa1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_corporate_action_entitlement1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_csdr_penalty1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_erc4337_userop_math1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "chain_id": { - "type": [ - "string", - "null" - ] - }, - "entry_point": { - "properties": { - "address": { - "type": [ - "string", - "null" - ] - }, - "address_matches_canonical": { - "type": [ - "boolean", - "null" - ] - }, - "canonical_address_for_declared_version": { - "type": [ - "string", - "null" - ] - }, - "declared_version": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - }, - "field_hashes": { - "properties": { - "call_data_hash": { - "type": "string" - }, - "init_code_hash": { - "type": "string" - }, - "paymaster_and_data_hash": { - "type": "string" - } - }, - "type": [ - "object", - "null" - ] - }, - "gas_accounting": { - "properties": { - "declared_base_fee_per_gas": { - "type": [ - "string", - "null" - ] - }, - "effective_gas_price_basis": { - "type": "string" - }, - "effective_gas_price_wei": { - "type": [ - "string", - "null" - ] - }, - "entry_point_version": { - "type": "string" - }, - "paymaster_address": { - "type": [ - "string", - "null" - ] - }, - "paymaster_fields_note": { - "type": [ - "string", - "null" - ] - }, - "paymaster_multiplier_applied": { - "type": [ - "string", - "null" - ] - }, - "paymaster_post_op_gas_limit": { - "type": [ - "string", - "null" - ] - }, - "paymaster_present": { - "type": "boolean" - }, - "paymaster_verification_gas_limit": { - "type": [ - "string", - "null" - ] - }, - "prefund_formula": { - "type": "string" - }, - "required_gas": { - "type": "string" - }, - "required_prefund_wei": { - "type": "string" - } - }, - "type": [ - "object", - "null" - ] - }, - "never_fetched": { - "items": { - "type": "string" - }, - "type": "array" - }, - "packed_user_op_hash": { - "type": [ - "string", - "null" - ] - }, - "packed_words": { - "properties": { - "account_gas_limits": { - "type": [ - "string", - "null" - ] - }, - "gas_fees": { - "type": [ - "string", - "null" - ] - }, - "layout": { - "type": "string" - }, - "word_count": { - "type": "number" - } - }, - "type": [ - "object", - "null" - ] - }, - "paymaster_reconciliation": { - "properties": { - "declared_actual_gas_cost_wei": { - "type": [ - "string", - "null" - ] - }, - "declared_actual_gas_used": { - "type": [ - "string", - "null" - ] - }, - "declared_l1_data_fee_wei": { - "type": [ - "string", - "null" - ] - }, - "missing_declared_inputs": { - "items": { - "type": "string" - }, - "type": "array" - }, - "notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "recomputed_execution_cost_wei": { - "type": [ - "string", - "null" - ] - }, - "recomputed_total_charge_wei": { - "type": [ - "string", - "null" - ] - }, - "residual_wei": { - "type": [ - "string", - "null" - ] - }, - "status": { - "type": "string" - }, - "tolerance_wei": { - "type": "string" - } - }, - "type": [ - "object", - "null" - ] - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "scope_note": { - "type": "string" - }, - "user_op": { - "properties": { - "call_data": { - "type": [ - "string", - "null" - ] - }, - "call_gas_limit": { - "type": [ - "string", - "null" - ] - }, - "init_code": { - "type": [ - "string", - "null" - ] - }, - "max_fee_per_gas": { - "type": [ - "string", - "null" - ] - }, - "max_priority_fee_per_gas": { - "type": [ - "string", - "null" - ] - }, - "nonce": { - "type": [ - "string", - "null" - ] - }, - "paymaster_and_data": { - "type": [ - "string", - "null" - ] - }, - "pre_verification_gas": { - "type": [ - "string", - "null" - ] - }, - "sender": { - "type": [ - "string", - "null" - ] - }, - "verification_gas_limit": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - }, - "user_op_hash": { - "type": [ - "string", - "null" - ] - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
recompute_erc4626_vault_share_math1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "conversions": { - "type": "array" - }, - "declared_context": { - "type": "object" - }, - "fee": { - "type": [ - "object", - "null" - ] - }, - "note": { - "type": "string" - }, - "rate_drift": { - "type": [ - "object", - "null" - ] - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "round_trip": { - "type": [ - "object", - "null" - ] - }, - "rounding_table": { - "type": "array" - }, - "vault_state": { - "type": [ - "object", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
recompute_erc7540_request_accounting1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "aggregate_by_controller": { - "type": [ - "boolean", - "null" - ] - }, - "claim_rounding_used": { - "type": [ - "string", - "null" - ] - }, - "claims": { - "type": "array" - }, - "closing": { - "type": [ - "object", - "null" - ] - }, - "declared_context": { - "type": "object" - }, - "dust": { - "type": "object" - }, - "invariants": { - "type": "array" - }, - "note": { - "type": "string" - }, - "opening": { - "type": [ - "object", - "null" - ] - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "request_id": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
recompute_exchange_fee_tier_invoice1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_fund_fees1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_fund_nav1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_garnishment_stack1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_lease_schedule_asc842_ifrs161 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_mla_mapr_actuarial1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "advance_total": { - "type": "number" - }, - "amount_financed_mapr": { - "type": "number" - }, - "bracketed": { - "type": "boolean" - }, - "charge_breakdown": { - "type": "array" - }, - "converged": { - "type": "boolean" - }, - "exceeds_cap": { - "type": [ - "boolean", - "null" - ] - }, - "finance_charge_in_schedule_total": { - "type": "number" - }, - "iterations": { - "type": "number" - }, - "manual_review_required": { - "type": "boolean" - }, - "mapr_cap_pct": { - "type": "number" - }, - "mapr_pct": { - "type": [ - "number", - "null" - ] - }, - "note": { - "type": "string" - }, - "num_advances": { - "type": "number" - }, - "num_payments": { - "type": "number" - }, - "participation_fee_open_end_no_balance_limit_usd": { - "type": "number" - }, - "payment_total": { - "type": "number" - }, - "periodic_rate": { - "type": [ - "number", - "null" - ] - }, - "periods_per_year": { - "type": "number" - }, - "prepaid_included_total": { - "type": "number" - }, - "regulatory_basis": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
recompute_payment_waterfall1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_pe_waterfall_lp1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_section16b_profit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_stablecoin_reserve_3source1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "as_of_skew_pairs": { - "type": "object" - }, - "as_of_skew_threshold_days": { - "type": "number" - }, - "determination_note": { - "type": "string" - }, - "genius_eligible_holdings": { - "items": { - "type": "object" - }, - "type": "array" - }, - "leg_a": { - "type": "object" - }, - "leg_b": { - "type": "object" - }, - "leg_c": { - "type": "object" - }, - "max_as_of_skew_days_global": { - "type": [ - "number", - "null" - ] - }, - "not_proven": { - "items": { - "type": "object" - }, - "type": "array" - }, - "overall_determination": { - "type": "string" - }, - "provisional_nprm_detail": { - "items": { - "type": "object" - }, - "type": "array" - }, - "reconciles": { - "items": { - "type": "object" - }, - "type": "array" - }, - "regulatory_framework": { - "type": "string" - }, - "reserve_ratio": { - "type": "object" - }, - "wam": { - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
recompute_stock_loan_rebate_fee1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_tmpg_fails_charge1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_trustee_report_waterfall1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
recompute_x402_eip712_digest1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "authorization": { - "properties": { - "from": { - "type": [ - "string", - "null" - ] - }, - "nonce": { - "type": [ - "string", - "null" - ] - }, - "to": { - "type": [ - "string", - "null" - ] - }, - "valid_after": { - "type": [ - "string", - "null" - ] - }, - "valid_before": { - "type": [ - "string", - "null" - ] - }, - "value": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - }, - "digest": { - "type": [ - "string", - "null" - ] - }, - "domain": { - "properties": { - "chain_id": { - "type": [ - "string", - "null" - ] - }, - "name": { - "type": [ - "string", - "null" - ] - }, - "verifying_contract": { - "type": [ - "string", - "null" - ] - }, - "version": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" - }, - "domain_separator": { - "type": [ - "string", - "null" - ] - }, - "domain_typehash": { - "type": "string" - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "scope_note": { - "type": "string" - }, - "struct_hash": { - "type": [ - "string", - "null" - ] - }, - "transfer_with_authorization_typehash": { - "type": "string" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
reconcile_aml_lookback_completeness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
reconcile_commission_statement1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
reconcile_erc8056_multiplier1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
reconcile_mpp_subscription1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
reconcile_report_to_general_ledger1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "account_count": { - "type": "integer" - }, - "accounts": { - "items": { - "properties": { - "account_id": { - "type": "string" - }, - "designed_plug_display": { - "type": "string" - }, - "designed_plug_minor_units": { - "type": "integer" - }, - "designed_plug_reason_code": { - "type": "string" - }, - "gl_figure_minor_units": { - "type": "integer" - }, - "reported_figure_minor_units": { - "type": "integer" - }, - "residual_display": { - "type": "string" - }, - "residual_minor_units": { - "type": "integer" - }, - "tolerance_minor_units": { - "type": "integer" - }, - "within_tolerance": { - "type": "boolean" - } - }, - "type": "object" - }, - "type": "array" - }, - "appendix_schedule_source": { - "type": "string" - }, - "appendix_schedule_version": { - "type": "string" - }, - "as_of": { - "type": "string" - }, - "breaking_account_count": { - "type": "integer" - }, - "cadence_refused": { - "type": "boolean" - }, - "currency": { - "type": "string" - }, - "decision": { - "properties": { - "execution_state": { - "type": "string" - }, - "gate_policy": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "type": "object" - }, - "gl_as_of": { - "type": "string" - }, - "gl_closed": { - "type": "boolean" - }, - "gl_closed_declared": { - "type": "boolean" - }, - "note": { - "type": "string" - }, - "plugged_account_count": { - "type": "integer" - }, - "rationale": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rejected_inputs": { - "type": "array" - }, - "reporting_cadence": { - "type": "string" - }, - "schedule_cadence": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
reconcile_sii_ifrs171 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
reconcile_x402_batch_settlement1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
record_fund_positions1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
record_index_constituents1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
record_model_input_lineage1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
register_mra_remediation_closure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
register_source_arrival_freshness1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "decision": { - "type": "string" - }, - "execution_state": { - "type": "string" - }, - "late_or_stale_sources": { - "type": "array" - }, - "missing_sources": { - "type": "array" - }, - "reason": { - "type": "string" - }, - "source_count": { - "type": "integer" - }, - "sources": { - "items": { - "properties": { - "arrived": { - "type": "boolean" - }, - "expected_as_of": { - "type": "integer" - }, - "freshness_threshold_hours": { - "type": "integer" - }, - "late": { - "type": "boolean" - }, - "observed_as_of": { - "type": "integer" - }, - "source_id": { - "type": "string" - }, - "source_status": { - "type": "string" - }, - "stale": { - "type": "boolean" - } - }, - "type": "object" - }, - "type": "array" - }, - "unknown_freshness_sources": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
replay_supervisory_scenario1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
replicate_model_outputs1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
resolve_cbam_default_value1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
resolve_recall_trace1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
resolve_rule_version1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "binding_for_queried_annual_period": { - "type": [ - "boolean", - "null" - ] - }, - "binding_for_queried_interim_periods": { - "type": [ - "boolean", - "null" - ] - }, - "bounds": { - "type": "object" - }, - "citation": { - "type": [ - "object", - "null" - ] - }, - "closed_filer_status_enum": { - "items": { - "type": "string" - }, - "type": "array" - }, - "early_adoption_permitted": { - "type": [ - "boolean", - "null" - ] - }, - "effective_for_annual_periods_beginning": { - "type": [ - "string", - "null" - ] - }, - "effective_for_interim_periods_beginning": { - "type": [ - "string", - "null" - ] - }, - "entry_digest": { - "type": [ - "string", - "null" - ] - }, - "error_code": { - "type": [ - "string", - "null" - ] - }, - "filer_status": { - "type": [ - "string", - "null" - ] - }, - "first_binding_period_end": { - "type": [ - "string", - "null" - ] - }, - "fiscal_year_begin": { - "type": [ - "string", - "null" - ] - }, - "fiscal_year_begin_basis": { - "description": "declared or inferred_prior_year_plus_one_day. An inference is never presented as a fact.", - "type": [ - "string", - "null" - ] - }, - "fiscal_year_end": { - "type": [ - "string", - "null" - ] - }, - "float_sensitive": { - "type": "boolean" - }, - "message": { - "type": [ - "string", - "null" - ] - }, - "parameter_set": { - "description": "Parameter 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.", - "type": [ - "object", - "null" - ] - }, - "parameter_set_as_of": { - "description": "The measurement date used, which is the fiscal year's beginning, matching how effective-date language is written.", - "type": [ - "string", - "null" - ] - }, - "registry_digest_recomputed": { - "type": [ - "string", - "null" - ] - }, - "resolution_path": { - "items": { - "type": "string" - }, - "type": "array" - }, - "resolution_status": { - "description": "RESOLVED or NO_BINDING_ENTRY, or null when the input was refused with an error_code.", - "type": [ - "string", - "null" - ] - }, - "scope_note": { - "type": "string" - }, - "standard_id": { - "type": [ - "string", - "null" - ] - }, - "transition_method": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
roll_up_aml_lookback_disposition1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
rollforward_y14_capital_worksheet1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
route_einvoice_jurisdiction_mandate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
route_partner_stablecoin_jurisdiction1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_401k_adp_acp_test1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_agent_economy_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_ai_act_highrisk_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_ai_governance_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_audit_recalc_suite1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_call_report_edit_checks1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "all_fatal_passed": { - "type": "boolean" - }, - "check_count": { - "type": "integer" - }, - "checks": { - "items": { - "properties": { - "description": { - "type": "string" - }, - "id": { - "type": "string" - }, - "passed": { - "type": "boolean" - }, - "severity": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "coverage_note": { - "type": "string" - }, - "entity_id": { - "type": "string" - }, - "fatal_failure_count": { - "type": "integer" - }, - "gate_status": { - "type": "string" - }, - "report_form": { - "type": "string" - }, - "reporting_period": { - "type": "string" - }, - "rounding_tolerance_usd": { - "type": "integer" - }, - "warning_failure_count": { - "type": "integer" - } - }, - "type": "object" -}New value: +null
- Changed
run_carbon_compliance_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_digital_trade_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_dora_readiness_diagnostic1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_eudr_readiness_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_illustration_selfsupport_test1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_insurance_reporting_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_irrbb_disclosure_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_kernel_vm1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "elapsed_ms": { - "type": "number" - }, - "output_payload": { - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
run_liquidity_stress_test1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_mcp_deployability_diagnostic1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "all_answered": { - "type": "boolean" - }, - "domain_scores": { - "properties": { - "defs": { - "properties": { - "label": { - "type": "string" - }, - "pct": { - "type": "integer" - } - }, - "type": "object" - }, - "ops": { - "properties": { - "label": { - "type": "string" - }, - "pct": { - "type": "integer" - } - }, - "type": "object" - }, - "security": { - "properties": { - "label": { - "type": "string" - }, - "pct": { - "type": "integer" - } - }, - "type": "object" - }, - "transport": { - "properties": { - "label": { - "type": "string" - }, - "pct": { - "type": "integer" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "gaps": { - "type": "array" - }, - "is_deployable": { - "type": "boolean" - }, - "score_pct": { - "type": "integer" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
run_mica_casp_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_model_test_battery1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_pqc_timeline_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_rate_shock_ladder1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_regrpt_edit_checks1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_sanctions_screening_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_section125_ndt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_slate_reporting_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_t1_readiness_diagnostic1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_tokenized_settlement_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_treasury_clearing_fit1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_umr_aana_readiness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
run_vop_readiness_diagnostic1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
scan_tool_poisoning1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "findings": { - "type": "array" - }, - "risk": { - "type": "number" - } - }, - "type": "object" -}New value: +null
- Changed
scope_mica_token_and_service1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_agent_insurability_evidence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_aml_typologies1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_cash_forecast_accuracy1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_credit_default_risk1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_credit_model_quantized1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_eudr_country_risk1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_mcp_readiness1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "overall": { - "type": "number" - }, - "sections": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
score_mcp_server_readiness1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "answers_used": { - "properties": { - "oauth_aud": { - "type": "string" - }, - "oauth_pass": { - "type": "string" - }, - "oauth_prm": { - "type": "string" - }, - "poison_clean": { - "type": "string" - }, - "poison_trust": { - "type": "string" - }, - "serverjson_meta": { - "type": "string" - }, - "serverjson_name": { - "type": "string" - }, - "serverjson_pkg": { - "type": "string" - }, - "spec_rev": { - "type": "string" - }, - "spec_stateless": { - "type": "string" - }, - "tooldef_ann": { - "type": "string" - }, - "tooldef_desc": { - "type": "string" - }, - "tooldef_schema": { - "type": "string" - }, - "transport_bind": { - "type": "string" - }, - "transport_origin": { - "type": "string" - } - }, - "type": "object" - }, - "gaps": { - "type": "array" - }, - "gaps_count": { - "type": "integer" - }, - "note": { - "type": "string" - }, - "overall": { - "type": "integer" - }, - "sections": { - "items": { - "properties": { - "id": { - "type": "string" - }, - "name": { - "type": "string" - }, - "pct": { - "type": "integer" - }, - "tool": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
score_mt_mx_translation_fidelity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_nis2_incident_significance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_nis2_supply_chain_diligence1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_partner_stablecoin_readiness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_payee_name_match1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_sanctions_screening_quality1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
score_taxonomy_alignment1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
screen_je_ruleset1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
screen_onledger_transfer_batch1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
screen_sanctions_private1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
screen_tip20_transfer_batch1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
select_agentic_checkout_protocol1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
select_cbe_license1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
select_embedded_license1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
simulate_agent_spend_policy1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
simulate_consent_stress1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
simulate_frtb_es1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
simulate_gpi_tracker_lifecycle1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
simulate_output_floor1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
simulate_spend_policy1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "bypass_paths_detected": { - "type": "array" - }, - "compliance_flags": { - "items": { - "type": "string" - }, - "type": "array" - }, - "fail_count": { - "type": "integer" - }, - "fail_rate_pct": { - "type": "number" - }, - "pass_count": { - "type": "integer" - }, - "top_fail_reasons": { - "properties": { - "EXCEEDS_DAILY_LIMIT": { - "type": "integer" - }, - "EXCEEDS_MONTHLY_LIMIT": { - "type": "integer" - }, - "EXCEEDS_PER_TX_LIMIT": { - "type": "integer" - } - }, - "type": "object" - }, - "total_approved_spend": { - "type": "number" - }, - "total_transactions": { - "type": "integer" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
simulate_stablecoin_reserve1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
simulate_var_monte_carlo1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
simulate_vop_matching1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "close_match": { - "type": "integer" - }, - "match": { - "type": "integer" - }, - "match_rate_pct": { - "type": "integer" - }, - "no_match": { - "type": "integer" - }, - "total_records": { - "type": "integer" - } - }, - "type": "object" -}New value: +null
- Changed
simulate_x402_flow1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
size_ccp_default_fund_cover21 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
stress_test_ap_redemption_path1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
sweep_docket_deadlines1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "as_of_date": { - "type": "string" - }, - "clause_note": { - "type": "string" - }, - "conflicts": { - "items": { - "properties": { - "action": { - "type": "string" - }, - "dates": { - "type": "array" - }, - "record_ids": { - "type": "array" - } - }, - "type": "object" - }, - "type": "array" - }, - "decision": { - "properties": { - "execution_state": { - "type": "string" - }, - "gate_policy": { - "type": "string" - }, - "reason": { - "type": "string" - } - }, - "type": "object" - }, - "due_soon_days_threshold": { - "type": "integer" - }, - "due_soon_days_threshold_is_default": { - "type": "boolean" - }, - "not_legal_advice_note": { - "type": "string" - }, - "record_count": { - "type": "integer" - }, - "records": { - "items": { - "properties": { - "action": { - "type": "string" - }, - "date": { - "type": "string" - }, - "days_remaining": { - "type": "integer" - }, - "done": { - "type": "boolean" - }, - "record_id": { - "type": "string" - }, - "roll": { - "type": "object" - }, - "rolled_date": { - "type": "string" - }, - "source": { - "type": "string" - }, - "status": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "type": "object" - }, - "type": "array" - }, - "rejected_inputs": { - "type": "array" - }, - "roll_rule": { - "properties": { - "holiday_dates": { - "type": "array" - }, - "roll_direction": { - "type": "string" - }, - "roll_direction_is_default": { - "type": "boolean" - }, - "roll_weekends": { - "type": "boolean" - }, - "roll_weekends_is_default": { - "type": "boolean" - } - }, - "type": "object" - }, - "scope_note": { - "type": "string" - }, - "sweep_summary": { - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
sweep_fedwire_addresses1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
test_asc280_reportable_segment1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "aggregation_criteria": { - "type": "object" - }, - "aggregation_criteria_answered_count": { - "type": "number" - }, - "aggregation_criteria_met_count": { - "type": "number" - }, - "comparison_basis": { - "type": "string" - }, - "coverage_75_pct": { - "type": "object" - }, - "coverage_threshold_pct": { - "type": "number" - }, - "is_reportable_by_quantitative_threshold": { - "type": "boolean" - }, - "majority_of_criteria_met": { - "type": "boolean" - }, - "management_judgment_required": { - "type": "boolean" - }, - "note": { - "type": "string" - }, - "oracle": { - "type": "string" - }, - "practical_limit_consideration_advised": { - "type": "boolean" - }, - "regulatory_basis": { - "type": "string" - }, - "reportable_segment_count": { - "type": [ - "number", - "null" - ] - }, - "rounding_steps": { - "type": "string" - }, - "tests": { - "items": { - "type": "object" - }, - "type": "array" - }, - "tests_met": { - "items": { - "type": "string" - }, - "type": "array" - }, - "tests_not_assessable": { - "items": { - "type": "string" - }, - "type": "array" - }, - "threshold_pct": { - "type": "number" - }, - "unanswered_aggregation_criteria": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
test_bifsg_bias_thresholds1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
test_hedge_effectiveness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
test_hoepa_high_cost1 field changed- changed
Output schema / (root)Previous 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": "number" - }, - "points_fees_floor": { - "type": "number" - }, - "points_fees_limit": { - "type": "number" - }, - "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" -}New value: +null
- Changed
test_nav_error_materiality1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
test_reg_w_affiliate_transactions1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
track_fatca_crs_ro_remediation_closure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
track_globe_transition_deferred_tax1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "canonical_order": { - "type": "string" - }, - "constants_version": { - "type": [ - "string", - "null" - ] - }, - "cutoff_date": { - "type": [ - "string", - "null" - ] - }, - "error_code": { - "type": [ - "string", - "null" - ] - }, - "exclusion_rules": { - "type": "array" - }, - "item_count": { - "type": "number" - }, - "items": { - "type": [ - "array", - "null" - ] - }, - "items_capped": { - "type": "number" - }, - "items_excluded": { - "type": "number" - }, - "items_in_error": { - "type": "number" - }, - "items_manual_review": { - "type": "number" - }, - "items_uplifted": { - "type": "number" - }, - "jurisdictional_roll_forward_total": { - "type": [ - "number", - "null" - ] - }, - "minimum_rate": { - "type": [ - "number", - "null" - ] - }, - "note": { - "type": "string" - }, - "rounding_steps": { - "type": "array" - }, - "total_is_complete": { - "type": "boolean" - }, - "transition_year_start_date": { - "type": [ - "string", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
track_ifrs17_loss_component_rollforward1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_a2a_agent_card1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "findings": { - "type": "array" - }, - "score": { - "type": "number" - } - }, - "type": "object" -}New value: +null
- Changed
validate_a2a_trust_chain1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_a2a_x402_mandate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_acp_checkout1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_adverse_action_notice1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_agent_audit_trail1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_agent_commerce_conformance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_agent_obo_mandate1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_ai_impact_assessment1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "complete": { - "type": "boolean" - }, - "completeness_score": { - "type": "integer" - }, - "fields_checked": { - "type": "integer" - }, - "fields_passed": { - "type": "integer" - }, - "gaps": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
validate_ap2_mandate_chain1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "checks_run": { - "type": "integer" - }, - "failing_checks": { - "type": "array" - }, - "has_cart": { - "type": "boolean" - }, - "human_not_present": { - "type": "boolean" - }, - "mandate_ids": { - "properties": { - "cart": { - "type": "string" - }, - "intent": { - "type": "string" - }, - "payment": { - "type": "string" - } - }, - "type": "object" - }, - "validation_verdict": { - "type": "string" - }, - "warning_checks": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
validate_ap2_mcp_policy1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "agent_ingestion_simulation": { - "type": "object" - }, - "export_json": { - "type": "string" - }, - "mcp_tool_definition": { - "type": "object" - }, - "schema_errors": { - "type": "array" - }, - "valid": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
validate_audit_trail_completeness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_canton_dvp_atomicity1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "atomicity_flag": { - "type": "string" - }, - "compliance_flags": { - "type": "object" - }, - "execution_hash": { - "type": "string" - }, - "finality_flag": { - "type": "string" - }, - "herstatt_flag": { - "type": "string" - }, - "pacs008": { - "type": "object" - }, - "verdict": { - "enum": [ - "PASS", - "CONDITIONAL", - "FAIL" - ], - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
validate_canton_party_allowlist1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "compliance_flags": { - "type": "object" - }, - "iso20022_party_identification": { - "type": "array" - }, - "party_results": { - "type": "array" - }, - "portfolio_verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
validate_canton_selective_disclosure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_cat_bond_trigger_terms1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_cctp_v2_transfer1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_collateral_swap_eligibility1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_commission_hierarchy1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_cross_network_settlement1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_cyclonedx_sbom1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_deposit_token_compliance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_dpp_data_carrier1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "carrier_valid": { - "type": "boolean" - }, - "missing_elements": { - "type": "array" - }, - "ontology_conformant": { - "type": "boolean" - }, - "ontology_version": { - "type": "string" - }, - "product_id": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
validate_dtc_tokenized_treasury1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_dtcc_ca_iso20022_message1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_ebam_acmt_flow1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_einvoice_format1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_eudr_due_diligence_statement1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_eudr_geolocation1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_eugb_factsheet1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_fdic370_output_file1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_form5500_schedules1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_fsma204_cte1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "cte_type": { - "type": "string" - }, - "cte_valid": { - "type": "boolean" - }, - "ftl_food": { - "type": "string" - }, - "missing_kdes": { - "type": "array" - } - }, - "type": "object" -}New value: +null
- Changed
validate_fund_collateral1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_ifrs17_csm_rollforward1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_mcp_authorization_metadata1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_mcp_server_identity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_mcp_server_json1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "findings": { - "items": { - "type": "object" - }, - "type": "array" - }, - "score": { - "type": "number" - }, - "skeleton": { - "type": "object" - } - }, - "type": "object" -}New value: +null
- Changed
validate_mcp_task_lifecycle1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "illegal_transitions": { - "type": "array" - }, - "lifecycle_valid": { - "type": "boolean" - }, - "transition_count": { - "type": "integer" - } - }, - "type": "object" -}New value: +null
- Changed
validate_mletr_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_mt700_lc_fields1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_nft_metadata_art2091 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_openids_homeowners_record1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_openvex_statement1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "context_ok": { - "type": "boolean" - }, - "invalid_statements": { - "type": "array" - }, - "statement_count": { - "type": "integer" - }, - "vex_valid": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
validate_pacs008_party_completeness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_pvp_settlement1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "has_canton_leg": { - "enum": [ - true, - false - ], - "type": "boolean", - "x-source": { - "kind": "manifest", - "note": "self-evident: has_canton_leg is a raw boolean pass-through of the caller-supplied canton_leg flag (chaingraph/kernels/511-multi-currency-pvp-validator.kernel.mjs, compute(), !!pp.canton_leg) — its domain is the complete JSON-Schema boolean type {true,false} by construction, not an external regulatory citation.", - "ref": "511-multi-currency-pvp-validator@1.0.0 compute()" - } - } - }, - "type": "object" -}New value: +null
- Changed
validate_qfc_recordkeeping_file1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_regf_call_frequency1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_royalty_split1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_slate_report_fields1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_spdx_sbom1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_tempo_token_compliance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_tempo_zone_disclosure1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_tfr_travel_rule_batch1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_tip20_memo_commitment1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_tokenized_security_lifecycle1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_w8_series_structural1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
validate_x402_deferred_handshake1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_a2a_agent_card1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_acdc_delegation_chain1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_address_migration_batch1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_anchored_extract1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_ap2_payment_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_conversion_receipt1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_did_webvh_log1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_dscsa_transaction_statement1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "epcis_event": { - "type": "string" - }, - "identifier_valid": { - "type": "boolean" - }, - "missing_elements": { - "type": "array" - }, - "t3_complete": { - "type": "boolean" - }, - "transaction_date": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
verify_einvoice_vat_calc1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_erc165_interface_id1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_erc2612_permit_binding1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_erc8004_registry_entry1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_etf_pcf_basket1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_eth_state_proof1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_finp2p_ledger_proof1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_input_attestations1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "attestation_count": { - "type": "integer" - }, - "attestations": { - "type": "array" - }, - "zero_attestation_caveat_shown": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
verify_ipe_integrity1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_kya_x402_scope1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_license_election1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_merkle_airdrop_proof1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "computed_root": { - "type": [ - "string", - "null" - ] - }, - "encoding_variant_used": { - "type": [ - "string", - "null" - ] - }, - "first_divergent_step": { - "type": [ - "number", - "null" - ] - }, - "leaf": { - "type": [ - "string", - "null" - ] - }, - "note": { - "type": "string" - }, - "pair_sort_used": { - "type": "boolean" - }, - "path": { - "type": "array" - }, - "path_intact": { - "type": [ - "boolean", - "null" - ] - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "root_matches_claimed": { - "type": [ - "boolean", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
verify_merkle_batch1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_migration_completeness1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_product_authenticity1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "authentic": { - "type": "boolean" - }, - "chains_to_root": { - "type": "boolean" - }, - "ownership_continuous": { - "type": "boolean" - }, - "product_id": { - "type": "string" - } - }, - "type": "object" -}New value: +null
- Changed
verify_proof_of_reserves_consistency1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "computed_liability_root": { - "type": [ - "object", - "null" - ] - }, - "computed_reserve_root": { - "type": [ - "object", - "null" - ] - }, - "coverage_ratio_pct": { - "type": [ - "number", - "null" - ] - }, - "declared_liability_root": { - "type": [ - "object", - "null" - ] - }, - "declared_reserve_root": { - "type": [ - "object", - "null" - ] - }, - "determination_note": { - "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": { - "enum": [ - "CONSISTENT", - "INCONSISTENT", - "INDETERMINATE" - ], - "type": "string" - }, - "regulatory_framework": { - "type": "string" - }, - "reserve_figure_cross_check": { - "type": [ - "object", - "null" - ] - } - }, - "type": "object" -}New value: +null
- Changed
verify_reserve_proof1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_revocation_status1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_saleable_return1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_settlement_asset_backing1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_slsa_provenance1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_tempo_mpp_voucher1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_timestamp_attestation1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "algo_match": { - "type": "boolean" - }, - "hash_match": { - "type": "boolean" - }, - "ts_consistent": { - "type": "boolean" - }, - "verified": { - "type": "boolean" - } - }, - "type": "object" -}New value: +null
- Changed
verify_trade_document_set1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_trid_apr_accuracy1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_witness_cosignatures1 field changed- changed
Output schema / (root)Previous 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" -}New value: +null
- Changed
verify_x402_signer_recovery1 field changed- changed
Output schema / (root)Previous value: -{ - "properties": { - "claimed_from": { - "type": [ - "string", - "null" - ] - }, - "digest": { - "type": [ - "string", - "null" - ] - }, - "reasons": { - "items": { - "type": "string" - }, - "type": "array" - }, - "recovered_signer": { - "type": [ - "string", - "null" - ] - }, - "recovered_signer_matches_claimed_from": { - "type": [ - "boolean", - "null" - ] - }, - "recovery_id": { - "type": [ - "number", - "null" - ] - }, - "recovery_id_source": { - "type": [ - "string", - "null" - ] - }, - "scope_note": { - "type": "string" - }, - "verdict": { - "type": "string" - } - }, - "type": "object" -}New value: +null
Related MCP Connectors
40 MCP tools: multi-chain RPC, market and transaction decisions, AI, EU compliance and US imports
FinTech Intel MCP — Compound tools that chain SEC, CFPB, FDIC,
10,065 source-verified compliance nodes, 39 pillars, 25 MCP tools (EU AI Act, GDPR, NIST, MITRE).
113 MCP tools: oracle, escrow, compliance, remittance, AI. 12 free tools, PAYG $0.001/call.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenance53 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
- AlicenseNot gradedqualityDmaintenance498 MCP tools across 12 industry verticals. Marketplace, escrow, DeFi, legal, healthcare, insurance, construction, and trades. USDC payments on Base L2.21 npmMIT
- FlicenseNot gradedqualityFmaintenanceProvides 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-
- AlicenseAqualityDmaintenanceProvides cryptographically verifiable RWA trust attestations and multi-chain DeFi data (TVL, top protocols, positioning scorecards) via MCP tools for AI assistants.111MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.