Skip to content

plan.validate

Every finding the derivation produced, in the order it produced them: a dependency on something that is not an issue, a cycle, an issue executing ahead of its dependencies or of its milestone's gate, an issue with no acceptance criteria, evidence missing under a completion date, a milestone whose graph contradicts itself, two issues of one wave sharing a path. A failure means the model is invalid; a warning means it is legal and worth reading.

Every finding the derivation produced, in the order it produced them: a dependency on something that is not an issue, a cycle, an issue executing ahead of its dependencies or of its milestone's gate, an issue with no acceptance criteria, evidence missing under a completion date, a milestone whose graph contradicts itself, two issues of one wave sharing a path. A failure means the model is invalid; a warning means it is legal and worth reading.

  • query
  • behaviorally_verified
  • module plan
  • #plan
  • #project
  • #validation

Exposure

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

surfaceas
MCPtool majordomus_plan_validate
HTTPGET /api/v1/plan/validate operationId plan.validate
command line

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 · PlanValidation

The model's own validation: what the graph refuses and what it merely warns about.

propertytyperequireddescription
failures integer yes How many findings are failures.
findings array yes Every finding, in derivation order.
issues integer yes How many issues.
milestones integer yes How many milestones the plan holds.
valid boolean yes Whether the model is valid: no finding is a failure.
warnings integer yes How many are warnings.
JSON Schema
{
  "$defs": {
    "PlanFinding": {
      "description": "One validation finding, in the shape `project.finding-carries-reproduce` asks for.",
      "properties": {
        "code": {
          "description": "The stable code a reader greps for (`unknown_dependency`, `scope_conflict`, …).",
          "type": "string"
        },
        "level": {
          "description": "`FAIL` or `WARN`. A failure means the model is invalid.",
          "type": "string"
        },
        "message": {
          "description": "What is wrong, in one line.",
          "type": "string"
        },
        "subject": {
          "description": "The record the finding is about, or `graph` when it is about the whole graph.",
          "type": "string"
        }
      },
      "required": [
        "level",
        "code",
        "subject",
        "message"
      ],
      "type": "object"
    }
  },
  "description": "The model's own validation: what the graph refuses and what it merely warns about.",
  "properties": {
    "failures": {
      "description": "How many findings are failures.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "findings": {
      "description": "Every finding, in derivation order.",
      "items": {
        "$ref": "#/$defs/PlanFinding"
      },
      "type": "array"
    },
    "issues": {
      "description": "How many issues.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "milestones": {
      "description": "How many milestones the plan holds.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    },
    "valid": {
      "description": "Whether the model is valid: no finding is a failure.",
      "type": "boolean"
    },
    "warnings": {
      "description": "How many are warnings.",
      "format": "uint",
      "minimum": 0,
      "type": "integer"
    }
  },
  "required": [
    "valid",
    "milestones",
    "issues",
    "failures",
    "warnings",
    "findings"
  ],
  "title": "PlanValidation",
  "type": "object"
}

Policies

benchmark
required — a target on every transport the exposure declares; the cases are the input type's
cache
disabled — every call runs the handler

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
mcpcovered1default
httpcovered1default