Skip to content

product.validate

Every finding over the product model: a reference that resolves to nothing, with the nearest candidate; a duplicate identity; a file name that disagrees with its id; a draft that is featured; a stable feature under its floors; and every module, command or kind that no stable feature names. Errors make the model invalid; warnings do not.

Every finding over the product model: a reference that resolves to nothing, with the nearest candidate; a duplicate identity; a file name that disagrees with its id; a draft that is featured; a stable feature under its floors; and every module, command or kind that no stable feature names. Errors make the model invalid; warnings do not.

Exposure

Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.

surfaceas
MCPtool majordomus_product_validate
HTTPGET /api/v1/product/validate operationId product.validate
command linemajordomus product validate

Schemas

The canonical input and output, from the Rust types; the MCP tool schema and the OpenAPI parameters and responses are derived from these.

input · Empty

No input.

No properties: the capability takes no input.

JSON Schema
{
  "additionalProperties": false,
  "description": "No input.",
  "title": "Empty",
  "type": "object"
}

output · ProductValidationReport

What the model's own validation found.

propertytyperequireddescription
counts reference yes The counts the model reached.
errors integer yes How many findings are errors.
findings array yes The findings, errors first, then by file.
valid boolean yes True when nothing is an error. Warnings do not make it false.
warnings integer yes How many findings are warnings.
JSON Schema
{
  "$defs": {
    "ProductCounts": {
      "description": "How much the model holds. Every count anywhere is one of these.",
      "properties": {
        "commands": {
          "description": "Public commands of the shell tool.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "commands_covered": {
          "description": "Commands a stable feature names.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "featured": {
          "description": "Stable features the homepage shows.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "features": {
          "description": "Stable features.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "features_all": {
          "description": "Features of every status, drafts included.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "kinds": {
          "description": "Kinds of the layer a feature can present.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "kinds_covered": {
          "description": "Kinds a stable feature names.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "modules": {
          "description": "Builtin modules of the executable, and how many a stable feature names.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "modules_covered": {
          "description": "Modules a stable feature names.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        },
        "providers": {
          "description": "Providers the tool has an adapter for.",
          "format": "uint",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "features",
        "features_all",
        "featured",
        "providers",
        "modules",
        "modules_covered",
        "commands",
        "commands_covered",
        "kinds",
        "kinds_covered"
      ],
      "type": "object"
    },
    "ProductFinding": {
      "description": "One thing wrong with the product model, named where it is, with the nearest candidate\nwhen there is one.",
      "properties": {
        "code": {
          "description": "`unknown_reference`, `duplicate_identity`, `missing_content`, `uncovered`, ...",
          "type": "string"
        },
        "did_you_mean": {
          "description": "The nearest existing name, when the value looks like a typo of one.",
          "type": [
            "string",
            "null"
          ]
        },
        "field": {
          "description": "The front-matter key the finding is about, when one key owns it.",
          "type": [
            "string",
            "null"
          ]
        },
        "id": {
          "description": "The record's identity, when one record owns the finding.",
          "type": [
            "string",
            "null"
          ]
        },
        "message": {
          "description": "What is wrong, in one sentence.",
          "type": "string"
        },
        "path": {
          "description": "The repository-relative file the finding is in, or the registry it is about.",
          "type": "string"
        },
        "severity": {
          "$ref": "#/$defs/Severity",
          "description": "`error` or `warning`."
        }
      },
      "required": [
        "severity",
        "code",
        "path",
        "message"
      ],
      "type": "object"
    },
    "Severity": {
      "description": "How bad a diagnostic is. `Error` excludes the file it concerns from the index and puts\nthe index into the degraded state; `Warning` and `Info` do neither.",
      "oneOf": [
        {
          "const": "info",
          "description": "Worth knowing; changes nothing.",
          "type": "string"
        },
        {
          "const": "warning",
          "description": "Something to look at; the object is still served.",
          "type": "string"
        },
        {
          "const": "error",
          "description": "The file is excluded and the index is degraded.",
          "type": "string"
        }
      ]
    }
  },
  "description": "What the model's own validation found.",
  "properties": {
    "counts": {
      "$ref": "#/$defs/ProductCounts",
      "description": "The counts the model reached."
    },
    "errors": {
      "description": "How many findings are errors.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "findings": {
      "description": "The findings, errors first, then by file.",
      "items": {
        "$ref": "#/$defs/ProductFinding"
      },
      "type": "array"
    },
    "valid": {
      "description": "True when nothing is an error. Warnings do not make it false.",
      "type": "boolean"
    },
    "warnings": {
      "description": "How many findings are warnings.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    }
  },
  "required": [
    "valid",
    "errors",
    "warnings",
    "counts",
    "findings"
  ],
  "title": "ProductValidationReport",
  "type": "object"
}

Policies

benchmark
required — a target on every transport the exposure declares; the cases are the input type's
cache
process — up to 2 entries in the process, scoped by the registry fingerprint

Benchmark targets

Derived from the registry for this repository: one requirement per transport, and the cases the input type provides. The whole matrix is on the benchmarks page.

transportstatecasestargets
directcovered1default cold+warm
mcpcovered1default cold+warm
httpcovered1default cold+warm