Skip to main content
Glama
Alien6-Studio

OuterSpace Apizr

Official

Analyze Python Project

apizr_analyze
Read-onlyIdempotent

Discover static capability identities/source evidence and relationships for inspection without running code; choose full, summary, or exact detail, then pin repo digests for readiness/exposure checks.

Instructions

Discover static capability identities, source evidence and relationships when you need to find what to inspect. Does not execute project code. Choose full, summary or exact capability/module detail. Retain a capability ID and the returned repository digest for optional expected_repository_digest pinning; next inspect readiness or test an exposure plan. Evidence is assessed afresh and is not cached for later calls. This tool grants no execution or exposure authority.

Input Schema

NameRequiredDescriptionDefault
viewNofull returns the complete canonical artifact/report; summary returns bounded evidence for compact inspection; detail focuses on exactly one capability or module and can paginate ancillary records. Reduced views are not partial canonical Catalog, Graph or Readiness artifacts.full
limitNoMaximum ancillary records in a detail page, from 1 to 200; omitted/null uses 50. Focus and principal blockers are not paged away. The response byte bound still applies and may refuse even one large record.
moduleNoOne exact logical module name, for example package.model, not a source path. Only for detail, with capability_id omitted/null.
offsetNoZero-based offset into deterministically ordered ancillary detail records after filtering; defaults to 0. Only detail accepts pagination. A nonzero offset requires expected_repository_digest. Use page.next_offset with the same filter; there is no persistent server-side pagination session.
capability_idNoExact canonical capability ID, for example python:model:predict. Only for detail, with module omitted/null. No fuzzy matching, source-path matching or implicit capability selection.
expected_repository_digestNoOptional consistency pin: omit or use null to discover normally without asserting a previous identity, or supply a lowercase 64-character hexadecimal SHA-256 value. Copy repository_digest.value from a previous full result, or identity.repository_digest.value from a bounded view. This plain value is the repository evidence identity expected from this call's discovery of the startup source scope; it does not select another repository. A mismatch is refused with repository_changed. Digest objects, algorithm prefixes and uppercase are invalid.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed42 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {},
      +  {
      +    "view": "summary"
      +  },
      +  {
      +    "expected_repository_digest": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
      +  },
      +  {
      +    "capability_id": "python:model:predict",
      +    "limit": 50,
      +    "view": "detail"
      +  }
      +]
    • addedInput schema / properties / capability_id
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 1024,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Exact canonical capability ID, for example python:model:predict. Only for detail, with module omitted/null. No fuzzy matching, source-path matching or implicit capability selection.",
      +  "title": "Capability Id"
      +}
    • addedInput schema / properties / expected_repository_digest / description
      Added value: +"Optional consistency pin: omit or use null to discover normally without asserting a previous identity, or supply a lowercase 64-character hexadecimal SHA-256 value. Copy repository_digest.value from a previous full result, or identity.repository_digest.value from a bounded view. This plain value is the repository evidence identity expected from this call's discovery of the startup source scope; it does not select another repository. A mismatch is refused with repository_changed. Digest objects, algorithm prefixes and uppercase are invalid."
    • addedInput schema / properties / limit
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 200,
      +      "minimum": 1,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Maximum ancillary records in a detail page, from 1 to 200; omitted/null uses 50. Focus and principal blockers are not paged away. The response byte bound still applies and may refuse even one large record.",
      +  "title": "Limit"
      +}
    • addedInput schema / properties / module
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 512,
      +      "minLength": 1,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "One exact logical module name, for example package.model, not a source path. Only for detail, with capability_id omitted/null.",
      +  "title": "Module"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maximum": 2147483647,
      +      "minimum": 0,
      +      "type": "integer"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Zero-based offset into deterministically ordered ancillary detail records after filtering; defaults to 0. Only detail accepts pagination. A nonzero offset requires expected_repository_digest. Use page.next_offset with the same filter; there is no persistent server-side pagination session.",
      +  "title": "Offset"
      +}
    • addedInput schema / properties / view
      Added value: +{
      +  "default": "full",
      +  "description": "full returns the complete canonical artifact/report; summary returns bounded evidence for compact inspection; detail focuses on exactly one capability or module and can paginate ancillary records. Reduced views are not partial canonical Catalog, Graph or Readiness artifacts.",
      +  "enum": [
      +    "full",
      +    "summary",
      +    "detail"
      +  ],
      +  "title": "View",
      +  "type": "string"
      +}
    • changedInput schema / title
      Previous value: -"Arguments"New value: +"ViewArguments"
    • addedOutput schema / $defs / AnalysisCounts
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "capabilities": {
      +      "title": "Capabilities",
      +      "type": "integer"
      +    },
      +    "catalog_diagnostics": {
      +      "title": "Catalog Diagnostics",
      +      "type": "integer"
      +    },
      +    "graph_complete": {
      +      "title": "Graph Complete",
      +      "type": "boolean"
      +    },
      +    "graph_diagnostics": {
      +      "title": "Graph Diagnostics",
      +      "type": "integer"
      +    },
      +    "imports": {
      +      "title": "Imports",
      +      "type": "integer"
      +    },
      +    "inspected_sources": {
      +      "title": "Inspected Sources",
      +      "type": "integer"
      +    },
      +    "modules": {
      +      "title": "Modules",
      +      "type": "integer"
      +    },
      +    "relationships": {
      +      "title": "Relationships",
      +      "type": "integer"
      +    },
      +    "sources": {
      +      "title": "Sources",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "sources",
      +    "inspected_sources",
      +    "capabilities",
      +    "modules",
      +    "relationships",
      +    "imports",
      +    "graph_complete",
      +    "catalog_diagnostics",
      +    "graph_diagnostics"
      +  ],
      +  "title": "AnalysisCounts",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / AnalysisDetail
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "focus": {
      +      "description": "The exactly selected capability or logical module with its static evidence and readiness states; never paged away.",
      +      "discriminator": {
      +        "mapping": {
      +          "capability": "#/$defs/CapabilityFocus",
      +          "module": "#/$defs/ModuleFocus"
      +        },
      +        "propertyName": "kind"
      +      },
      +      "oneOf": [
      +        {
      +          "$ref": "#/$defs/CapabilityFocus"
      +        },
      +        {
      +          "$ref": "#/$defs/ModuleFocus"
      +        }
      +      ],
      +      "title": "Focus"
      +    },
      +    "identity": {
      +      "$ref": "#/$defs/AnalysisIdentity",
      +      "description": "Identities of the complete static artifacts; filtering and paging do not change them."
      +    },
      +    "page": {
      +      "$ref": "#/$defs/Page",
      +      "description": "Pagination metadata for ancillary records after deterministic filtering and ordering."
      +    },
      +    "principal_blockers": {
      +      "$ref": "#/$defs/Blockers",
      +      "description": "Bounded principal diagnostic sample for this focus with complete count and has_more."
      +    },
      +    "records": {
      +      "description": "Current page of ancillary static source, dependency, relationship, import or diagnostic evidence; dependencies are not implicitly exposed.",
      +      "items": {
      +        "discriminator": {
      +          "mapping": {
      +            "capability": "#/$defs/CapabilityRecord",
      +            "dependency": "#/$defs/DependencyRecord",
      +            "diagnostic": "#/$defs/DiagnosticRecord",
      +            "import": "#/$defs/ImportRecord",
      +            "relationship": "#/$defs/RelationshipRecord",
      +            "source": "#/$defs/SourceRecord"
      +          },
      +          "propertyName": "kind"
      +        },
      +        "oneOf": [
      +          {
      +            "$ref": "#/$defs/DependencyRecord"
      +          },
      +          {
      +            "$ref": "#/$defs/CapabilityRecord"
      +          },
      +          {
      +            "$ref": "#/$defs/SourceRecord"
      +          },
      +          {
      +            "$ref": "#/$defs/RelationshipRecord"
      +          },
      +          {
      +            "$ref": "#/$defs/ImportRecord"
      +          },
      +          {
      +            "$ref": "#/$defs/DiagnosticRecord"
      +          }
      +        ]
      +      },
      +      "title": "Records",
      +      "type": "array"
      +    },
      +    "view": {
      +      "const": "detail",
      +      "default": "detail",
      +      "description": "Focused static evidence view, not a partial canonical Catalog or Graph.",
      +      "title": "View",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "identity",
      +    "focus",
      +    "principal_blockers",
      +    "page",
      +    "records"
      +  ],
      +  "title": "AnalysisDetail",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / AnalysisIdentity
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "catalog_digest": {
      +      "$ref": "#/$defs/Digest",
      +      "description": "Digest of the complete canonical static Catalog, unchanged by filtering or pagination."
      +    },
      +    "graph_digest": {
      +      "$ref": "#/$defs/Digest",
      +      "description": "Digest of the complete canonical static Graph, unchanged by filtering or pagination."
      +    },
      +    "repository_digest": {
      +      "$ref": "#/$defs/Digest",
      +      "description": "Complete repository evidence identity; copy value to expected_repository_digest for consistency pinning."
      +    }
      +  },
      +  "required": [
      +    "repository_digest",
      +    "catalog_digest",
      +    "graph_digest"
      +  ],
      +  "title": "AnalysisIdentity",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / AnalysisResult
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "catalog": {
      +      "$ref": "#/$defs/Catalog",
      +      "description": "Complete canonical static capability and source evidence; does not imply successful project execution."
      +    },
      +    "graph": {
      +      "$ref": "#/$defs/Graph",
      +      "description": "Complete canonical static relationship and import graph evidence, including uncertainty; does not imply successful project execution."
      +    },
      +    "repository_digest": {
      +      "$ref": "#/$defs/Digest",
      +      "description": "Repository evidence identity observed by this call; copy value to expected_repository_digest to pin a subsequent call."
      +    }
      +  },
      +  "required": [
      +    "repository_digest",
      +    "catalog",
      +    "graph"
      +  ],
      +  "title": "AnalysisResult",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / AnalysisSummary
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "identity": {
      +      "$ref": "#/$defs/AnalysisIdentity",
      +      "description": "Identities of the complete static artifacts underlying this bounded view."
      +    },
      +    "principal_blockers": {
      +      "$ref": "#/$defs/Blockers",
      +      "description": "Bounded sample of at most ten principal diagnostics with total and has_more; not all evidence."
      +    },
      +    "summary": {
      +      "$ref": "#/$defs/AnalysisCounts",
      +      "description": "Static source, capability, relationship and diagnostic counts; no project execution is implied."
      +    },
      +    "view": {
      +      "const": "summary",
      +      "default": "summary",
      +      "description": "Bounded summary variant, not a partial canonical Catalog or Graph.",
      +      "title": "View",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "identity",
      +    "summary",
      +    "principal_blockers"
      +  ],
      +  "title": "AnalysisSummary",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / Blockers
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "has_more": {
      +      "title": "Has More",
      +      "type": "boolean"
      +    },
      +    "shown": {
      +      "items": {
      +        "$ref": "#/$defs/EvidenceDiagnostic"
      +      },
      +      "maxItems": 10,
      +      "title": "Shown",
      +      "type": "array"
      +    },
      +    "total": {
      +      "minimum": 0,
      +      "title": "Total",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "total",
      +    "shown",
      +    "has_more"
      +  ],
      +  "title": "Blockers",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / CapabilityFocus
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "capability": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/CapabilityEntry"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "capability_id": {
      +      "title": "Capability Id",
      +      "type": "string"
      +    },
      +    "global_evidence_complete": {
      +      "title": "Global Evidence Complete",
      +      "type": "boolean"
      +    },
      +    "interface_eligible": {
      +      "title": "Interface Eligible",
      +      "type": "boolean"
      +    },
      +    "kind": {
      +      "const": "capability",
      +      "default": "capability",
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "local_readiness": {
      +      "$ref": "#/$defs/Assessment"
      +    },
      +    "module": {
      +      "title": "Module",
      +      "type": "string"
      +    },
      +    "reasons": {
      +      "items": {
      +        "$ref": "#/$defs/apizr__repository_readiness__model__Reason"
      +      },
      +      "title": "Reasons",
      +      "type": "array"
      +    },
      +    "repository_state": {
      +      "$ref": "#/$defs/State"
      +    },
      +    "selected_state": {
      +      "$ref": "#/$defs/State"
      +    },
      +    "source_path": {
      +      "title": "Source Path",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "capability_id",
      +    "module",
      +    "source_path",
      +    "capability",
      +    "local_readiness",
      +    "repository_state",
      +    "selected_state",
      +    "interface_eligible",
      +    "global_evidence_complete",
      +    "reasons"
      +  ],
      +  "title": "CapabilityFocus",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / CapabilityRecord
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "capability": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/CapabilityEntry"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "capability_id": {
      +      "title": "Capability Id",
      +      "type": "string"
      +    },
      +    "kind": {
      +      "const": "capability",
      +      "default": "capability",
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "local_state": {
      +      "$ref": "#/$defs/State"
      +    },
      +    "source_path": {
      +      "title": "Source Path",
      +      "type": "string"
      +    },
      +    "state": {
      +      "$ref": "#/$defs/State"
      +    }
      +  },
      +  "required": [
      +    "capability_id",
      +    "source_path",
      +    "capability",
      +    "local_state",
      +    "state"
      +  ],
      +  "title": "CapabilityRecord",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / DependencyRecord
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "exposed": {
      +      "const": false,
      +      "default": false,
      +      "title": "Exposed",
      +      "type": "boolean"
      +    },
      +    "id": {
      +      "title": "Id",
      +      "type": "string"
      +    },
      +    "kind": {
      +      "const": "dependency",
      +      "default": "dependency",
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "node": {
      +      "anyOf": [
      +        {
      +          "discriminator": {
      +            "mapping": {
      +              "capability": "#/$defs/CapabilityNode",
      +              "external_module": "#/$defs/ExternalNode",
      +              "module": "#/$defs/ModuleNode"
      +            },
      +            "propertyName": "kind"
      +          },
      +          "oneOf": [
      +            {
      +              "$ref": "#/$defs/ModuleNode"
      +            },
      +            {
      +              "$ref": "#/$defs/CapabilityNode"
      +            },
      +            {
      +              "$ref": "#/$defs/ExternalNode"
      +            }
      +          ]
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "title": "Node"
      +    }
      +  },
      +  "required": [
      +    "id",
      +    "node"
      +  ],
      +  "title": "DependencyRecord",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / DiagnosticRecord
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "diagnostic": {
      +      "$ref": "#/$defs/EvidenceDiagnostic"
      +    },
      +    "kind": {
      +      "const": "diagnostic",
      +      "default": "diagnostic",
      +      "title": "Kind",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "diagnostic"
      +  ],
      +  "title": "DiagnosticRecord",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / Digest / properties / algorithm / description
      Added value: +"Digest algorithm identifier, currently fixed to SHA-256 (sha256)."
    • addedOutput schema / $defs / Digest / properties / value / description
      Added value: +"The 64-character lowercase hexadecimal SHA-256 digest value, without an algorithm prefix."
    • changedOutput schema / $defs / Dimension / properties / reasons / items / $ref
      Previous value: -"#/$defs/Reason"New value: +"#/$defs/apizr__readiness__model__Reason"
    • addedOutput schema / $defs / EvidenceDiagnostic
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "action": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "inspect_dependency",
      +            "fix_import",
      +            "fix_binding",
      +            "fix_initialization",
      +            "select_known_capability",
      +            "resolve_interface_contract",
      +            "adjust_execution_requirements"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Action"
      +    },
      +    "capability_id": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Capability Id"
      +    },
      +    "code": {
      +      "maxLength": 128,
      +      "minLength": 1,
      +      "title": "Code",
      +      "type": "string"
      +    },
      +    "column": {
      +      "anyOf": [
      +        {
      +          "minimum": 0,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Column"
      +    },
      +    "dependency_path": {
      +      "default": [],
      +      "items": {
      +        "type": "string"
      +      },
      +      "title": "Dependency Path",
      +      "type": "array"
      +    },
      +    "line": {
      +      "anyOf": [
      +        {
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Line"
      +    },
      +    "origin": {
      +      "enum": [
      +        "catalog",
      +        "graph",
      +        "readiness",
      +        "scope"
      +      ],
      +      "title": "Origin",
      +      "type": "string"
      +    },
      +    "reason": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Reason"
      +    },
      +    "source_path": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Source Path"
      +    }
      +  },
      +  "required": [
      +    "origin",
      +    "code"
      +  ],
      +  "title": "EvidenceDiagnostic",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ImportRecord
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "declaration": {
      +      "$ref": "#/$defs/ImportDeclaration"
      +    },
      +    "kind": {
      +      "const": "import",
      +      "default": "import",
      +      "title": "Kind",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "declaration"
      +  ],
      +  "title": "ImportRecord",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ModuleFocus
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "capability_count": {
      +      "title": "Capability Count",
      +      "type": "integer"
      +    },
      +    "kind": {
      +      "const": "module",
      +      "default": "module",
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "module": {
      +      "title": "Module",
      +      "type": "string"
      +    },
      +    "node": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/ModuleNode"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "source": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/SourceView"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "source_count": {
      +      "title": "Source Count",
      +      "type": "integer"
      +    },
      +    "states": {
      +      "additionalProperties": {
      +        "type": "integer"
      +      },
      +      "propertyNames": {
      +        "$ref": "#/$defs/State"
      +      },
      +      "title": "States",
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "module",
      +    "source_count",
      +    "source",
      +    "node",
      +    "capability_count",
      +    "states"
      +  ],
      +  "title": "ModuleFocus",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ObjectField
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "name": {
      +      "title": "Name",
      +      "type": "string"
      +    },
      +    "required": {
      +      "title": "Required",
      +      "type": "boolean"
      +    },
      +    "type": {
      +      "$ref": "#/$defs/TypeSpec"
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "required",
      +    "type"
      +  ],
      +  "title": "ObjectField",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / Page
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "complete": {
      +      "description": "True when no subsequent page remains; does not assert that static evidence itself is complete.",
      +      "title": "Complete",
      +      "type": "boolean"
      +    },
      +    "limit": {
      +      "description": "Maximum records requested for this page; not a response byte limit.",
      +      "maximum": 200,
      +      "minimum": 1,
      +      "title": "Limit",
      +      "type": "integer"
      +    },
      +    "next_offset": {
      +      "anyOf": [
      +        {
      +          "minimum": 1,
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "description": "Offset for the next page, or null when complete; continue with the same filter and repository digest pin.",
      +      "title": "Next Offset"
      +    },
      +    "offset": {
      +      "description": "Zero-based offset in the complete filtered and deterministically ordered record collection.",
      +      "minimum": 0,
      +      "title": "Offset",
      +      "type": "integer"
      +    },
      +    "returned": {
      +      "description": "Number of records actually included in this page.",
      +      "minimum": 0,
      +      "title": "Returned",
      +      "type": "integer"
      +    },
      +    "total": {
      +      "description": "Total records in the complete filtered collection before pagination.",
      +      "minimum": 0,
      +      "title": "Total",
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "offset",
      +    "limit",
      +    "total",
      +    "returned",
      +    "complete"
      +  ],
      +  "title": "Page",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / ReadinessReport / properties / structured_types
      Added value: +{
      +  "default": [],
      +  "items": {
      +    "$ref": "#/$defs/StructuredDeclaration"
      +  },
      +  "title": "Structured Types",
      +  "type": "array"
      +}
    • removedOutput schema / $defs / Reason
      Removed value: -{
      -  "additionalProperties": false,
      -  "properties": {
      -    "code": {
      -      "$ref": "#/$defs/apizr__readiness__model__Code"
      -    },
      -    "evidence": {
      -      "const": "inferred",
      -      "default": "inferred",
      -      "title": "Evidence",
      -      "type": "string"
      -    },
      -    "line": {
      -      "title": "Line",
      -      "type": "integer"
      -    },
      -    "parameter": {
      -      "anyOf": [
      -        {
      -          "type": "string"
      -        },
      -        {
      -          "type": "null"
      -        }
      -      ],
      -      "default": null,
      -      "title": "Parameter"
      -    }
      -  },
      -  "required": [
      -    "code",
      -    "line"
      -  ],
      -  "title": "Reason",
      -  "type": "object"
      -}
    • addedOutput schema / $defs / RelationshipRecord
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "kind": {
      +      "const": "relationship",
      +      "default": "relationship",
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "relationship": {
      +      "$ref": "#/$defs/Relationship"
      +    }
      +  },
      +  "required": [
      +    "relationship"
      +  ],
      +  "title": "RelationshipRecord",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / SourceRecord
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "kind": {
      +      "const": "source",
      +      "default": "source",
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "source": {
      +      "$ref": "#/$defs/SourceView"
      +    }
      +  },
      +  "required": [
      +    "source"
      +  ],
      +  "title": "SourceRecord",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / SourceView
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "inspected": {
      +      "title": "Inspected",
      +      "type": "boolean"
      +    },
      +    "is_package": {
      +      "title": "Is Package",
      +      "type": "boolean"
      +    },
      +    "module": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "title": "Module"
      +    },
      +    "path": {
      +      "title": "Path",
      +      "type": "string"
      +    },
      +    "size": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "title": "Size"
      +    },
      +    "source_digest": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/Digest"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "path",
      +    "module",
      +    "source_digest",
      +    "size",
      +    "inspected",
      +    "is_package"
      +  ],
      +  "title": "SourceView",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / StructuredDeclaration
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Source-bound, statically proven shape or an explicit bounded refusal.",
      +  "properties": {
      +    "name": {
      +      "title": "Name",
      +      "type": "string"
      +    },
      +    "problem": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Problem"
      +    },
      +    "source": {
      +      "$ref": "#/$defs/SourceSpan"
      +    },
      +    "type": {
      +      "anyOf": [
      +        {
      +          "$ref": "#/$defs/TypeSpec"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null
      +    }
      +  },
      +  "required": [
      +    "name",
      +    "source"
      +  ],
      +  "title": "StructuredDeclaration",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / TypeSpec
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "fields": {
      +      "default": [],
      +      "items": {
      +        "$ref": "#/$defs/ObjectField"
      +      },
      +      "title": "Fields",
      +      "type": "array"
      +    },
      +    "items": {
      +      "default": [],
      +      "items": {
      +        "$ref": "#/$defs/TypeSpec"
      +      },
      +      "title": "Items",
      +      "type": "array"
      +    },
      +    "kind": {
      +      "enum": [
      +        "any",
      +        "int",
      +        "str",
      +        "float",
      +        "bool",
      +        "null",
      +        "list",
      +        "dict",
      +        "tuple",
      +        "set",
      +        "union",
      +        "literal",
      +        "object"
      +      ],
      +      "title": "Kind",
      +      "type": "string"
      +    },
      +    "values": {
      +      "default": [],
      +      "items": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "integer"
      +          },
      +          {
      +            "type": "number"
      +          },
      +          {
      +            "type": "boolean"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ]
      +      },
      +      "title": "Values",
      +      "type": "array"
      +    },
      +    "variadic": {
      +      "default": false,
      +      "title": "Variadic",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "kind"
      +  ],
      +  "title": "TypeSpec",
      +  "type": "object"
      +}
    • changedOutput schema / $defs / apizr__readiness__model__Code / enum
      Previous value: -[
      -  "APIZR-READY-001",
      -  "APIZR-READY-002",
      -  "APIZR-READY-003",
      -  "APIZR-READY-004",
      -  "APIZR-READY-005",
      -  "APIZR-READY-006",
      -  "APIZR-READY-007",
      -  "APIZR-READY-008",
      -  "APIZR-READY-009",
      -  "APIZR-READY-010",
      -  "APIZR-READY-011",
      -  "APIZR-READY-012",
      -  "APIZR-READY-013",
      -  "APIZR-READY-014",
      -  "APIZR-READY-015",
      -  "APIZR-READY-016",
      -  "APIZR-READY-017",
      -  "APIZR-READY-018"
      -]New value: +[
      +  "APIZR-READY-001",
      +  "APIZR-READY-002",
      +  "APIZR-READY-003",
      +  "APIZR-READY-004",
      +  "APIZR-READY-005",
      +  "APIZR-READY-006",
      +  "APIZR-READY-007",
      +  "APIZR-READY-008",
      +  "APIZR-READY-009",
      +  "APIZR-READY-010",
      +  "APIZR-READY-011",
      +  "APIZR-READY-012",
      +  "APIZR-READY-013",
      +  "APIZR-READY-014",
      +  "APIZR-READY-015",
      +  "APIZR-READY-016",
      +  "APIZR-READY-017",
      +  "APIZR-READY-018",
      +  "APIZR-READY-019"
      +]
    • addedOutput schema / $defs / apizr__readiness__model__Reason
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "code": {
      +      "$ref": "#/$defs/apizr__readiness__model__Code"
      +    },
      +    "evidence": {
      +      "const": "inferred",
      +      "default": "inferred",
      +      "title": "Evidence",
      +      "type": "string"
      +    },
      +    "line": {
      +      "title": "Line",
      +      "type": "integer"
      +    },
      +    "parameter": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Parameter"
      +    }
      +  },
      +  "required": [
      +    "code",
      +    "line"
      +  ],
      +  "title": "Reason",
      +  "type": "object"
      +}
    • addedOutput schema / $defs / apizr__repository_readiness__model__Code
      Added value: +{
      +  "enum": [
      +    "APIZR-REPOREADY-001",
      +    "APIZR-REPOREADY-002",
      +    "APIZR-REPOREADY-003",
      +    "APIZR-REPOREADY-004",
      +    "APIZR-REPOREADY-005",
      +    "APIZR-REPOREADY-006",
      +    "APIZR-REPOREADY-007",
      +    "APIZR-REPOREADY-008"
      +  ],
      +  "title": "Code",
      +  "type": "string"
      +}
    • addedOutput schema / $defs / apizr__repository_readiness__model__Reason
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "code": {
      +      "$ref": "#/$defs/apizr__repository_readiness__model__Code"
      +    },
      +    "effect": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "filesystem_read",
      +            "filesystem_write",
      +            "network",
      +            "environment",
      +            "subprocess",
      +            "state_mutation",
      +            "secrets",
      +            "external_service"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "default": null,
      +      "title": "Effect"
      +    }
      +  },
      +  "required": [
      +    "code"
      +  ],
      +  "title": "Reason",
      +  "type": "object"
      +}
    • removedOutput schema / additionalProperties
      Removed value: -false
    • addedOutput schema / anyOf
      Added value: +[
      +  {
      +    "$ref": "#/$defs/AnalysisResult"
      +  },
      +  {
      +    "$ref": "#/$defs/AnalysisSummary"
      +  },
      +  {
      +    "$ref": "#/$defs/AnalysisDetail"
      +  }
      +]
    • removedOutput schema / properties
      Removed value: -{
      -  "catalog": {
      -    "$ref": "#/$defs/Catalog"
      -  },
      -  "graph": {
      -    "$ref": "#/$defs/Graph"
      -  },
      -  "repository_digest": {
      -    "$ref": "#/$defs/Digest"
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "repository_digest",
      -  "catalog",
      -  "graph"
      -]
    • changedOutput schema / title
      Previous value: -"AnalysisResult"New value: +"AnalysisOutput"
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world. The description adds genuinely new behavior: no code execution, no execution or exposure authority, evidence re-assessed and not cached, and digest-mismatch refusal. That is substantial context beyond the structured fields, though one point is somewhat restated.

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

Conciseness4/5

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

Information is dense and front-loaded with the core purpose, followed by mode choice, workflow, freshness and authority limits. Minor redundancy between 'does not execute project code' and 'grants no execution or exposure authority', but every sentence carries weight.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and the description nonetheless covers safety, freshness, digest pinning and next-step tools. Remaining gap is only the lack of direct sibling naming for routing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds a workflow rationale for expected_repository_digest (retain the returned digest to pin a later call) and summarizes the view choices. This exceeds what the schema alone conveys about parameter intent.

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

Purpose4/5

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

The description states a specific verb+resource: discover static capability identities, source evidence and relationships. It also clarifies the non-execution scope. It does not name the sibling tools directly, only alluding to 'inspect readiness or test an exposure plan', so sibling differentiation is implied rather than explicit.

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

Usage Guidelines4/5

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

It gives clear workflow context ('when you need to find what to inspect', retain the capability ID and digest, then inspect readiness or test an exposure plan) and calls out the three view modes. It stops short of an explicit when-not statement or naming the alternative tools.

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