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.
| surface | as |
|---|---|
| MCP | tool majordomus_plan_validate |
| HTTP | GET /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.
| property | type | required | description |
|---|---|---|---|
| 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.