editors.status
Every adapter (Zed, Antigravity) with each capability it supports, does not, or cannot be verified for, and the evidence; every projected file with the inputs it is derived from, its content address and its state here (current, stale, absent, or a conflict with a file this generator did not write); orphaned projections; and every finding with its remedy. Writes nothing: `majordomus generate editors` does.
Every adapter (Zed, Antigravity) with each capability it supports, does not, or cannot be verified for, and the evidence; every projected file with the inputs it is derived from, its content address and its state here (current, stale, absent, or a conflict with a file this generator did not write); orphaned projections; and every finding with its remedy. Writes nothing: `majordomus generate editors` does.
- query
- behaviorally_verified
- module editors
- #editors
- #projections
- #introspection
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_editors resource majordomus://editors |
| HTTP | GET /api/v1/editors operationId editors.status |
| 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 properties: the capability takes no input.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}output · EditorProjection
editors.status: every adapter, every projected file and its state, every finding.| property | type | required | description |
|---|---|---|---|
| adapters | array | yes | The adapters, by id. |
| artifacts | array | yes | The projected files, by path. |
| diagnostics | array | yes | The findings, by severity then code then path. |
| inputs | array | yes | The inputs, by path. |
| orphans | array | no | Generator-owned files under a projected directory that the plan no longer contains. |
| projection_version | integer | yes | PROJECTION_VERSION. |
| schema | string | yes | SCHEMA. |
JSON Schema
{
"$defs": {
"EditorAdapter": {
"description": "One adapter: the product, the version its claims were verified against, its capabilities.",
"properties": {
"capabilities": {
"description": "Its capabilities, by id.",
"items": {
"$ref": "#/$defs/EditorCapability"
},
"type": "array"
},
"id": {
"description": "`zed` or `antigravity`.",
"type": "string"
},
"title": {
"description": "The product's name.",
"type": "string"
},
"verified_against": {
"description": "The release the evidence was taken from.",
"type": "string"
}
},
"required": [
"id",
"title",
"verified_against",
"capabilities"
],
"type": "object"
},
"EditorCapability": {
"description": "One capability of one adapter.",
"properties": {
"artifacts": {
"description": "The files that carry it, repository-relative. Empty when nothing is projected.",
"items": {
"type": "string"
},
"type": "array"
},
"evidence": {
"description": "Where the claim about the product comes from.",
"type": "string"
},
"id": {
"description": "Stable identity within the adapter: `skills`, `tasks`, `instructions`, `mcp`, ...",
"type": "string"
},
"note": {
"description": "What it means here, and what to do when nothing is projected.",
"type": "string"
},
"support": {
"$ref": "#/$defs/EditorSupport",
"description": "What the adapter does with it."
}
},
"required": [
"id",
"support",
"evidence",
"note"
],
"type": "object"
},
"EditorDerivation": {
"description": "One projected file and how it came to be.",
"properties": {
"adapters": {
"description": "The adapters that read it.",
"items": {
"type": "string"
},
"type": "array"
},
"document": {
"description": "The document id in the generated-artifact manifest.",
"type": "string"
},
"key": {
"description": "The content address of the derivation: the projection version and the fingerprints of\nits sources. The same key always yields the same bytes.",
"type": "string"
},
"path": {
"description": "Repository-relative path.",
"type": "string"
},
"sha256": {
"description": "SHA-256 of the projected content.",
"type": "string"
},
"sources": {
"description": "The inputs it is derived from, by path.",
"items": {
"type": "string"
},
"type": "array"
},
"state": {
"$ref": "#/$defs/EditorFileState",
"description": "The state of the file in this checkout."
}
},
"required": [
"path",
"document",
"adapters",
"sources",
"key",
"sha256",
"state"
],
"type": "object"
},
"EditorDiagnostic": {
"description": "Something about the projection worth acting on.",
"properties": {
"adapter": {
"description": "The adapter it concerns, when it concerns one.",
"type": [
"string",
"null"
]
},
"code": {
"description": "Stable identity of the finding.",
"type": "string"
},
"message": {
"description": "What was found.",
"type": "string"
},
"path": {
"description": "The file it concerns, when it concerns one.",
"type": [
"string",
"null"
]
},
"remedy": {
"description": "What to do about it.",
"type": "string"
},
"severity": {
"$ref": "#/$defs/Severity",
"description": "`info`, `warning` or `error`."
}
},
"required": [
"severity",
"code",
"message",
"remedy"
],
"type": "object"
},
"EditorFileState": {
"description": "A projected file as this checkout holds it.",
"oneOf": [
{
"const": "current",
"description": "Byte for byte what the projection says.",
"type": "string"
},
{
"const": "stale",
"description": "Generator-owned and different: `majordomus generate editors` rewrites it.",
"type": "string"
},
{
"const": "absent",
"description": "Not there: `majordomus generate editors` writes it.",
"type": "string"
},
{
"const": "conflict",
"description": "A file without the generated banner sits at the path: it is someone's, and nothing\noverwrites it.",
"type": "string"
}
]
},
"EditorInput": {
"description": "One input of the projection: a file, what kind of input it is, and its content address.",
"properties": {
"mutability": {
"$ref": "#/$defs/EditorInputClass",
"description": "Tracked content or checkout state."
},
"path": {
"description": "Repository-relative path.",
"type": "string"
},
"sha256": {
"description": "SHA-256 of its content.",
"type": "string"
}
},
"required": [
"path",
"mutability",
"sha256"
],
"type": "object"
},
"EditorInputClass": {
"description": "How far an input may change without the repository changing.",
"oneOf": [
{
"const": "repository",
"description": "Tracked content of the repository: changes only by a commit. The only class an\ninput has today: what the checkout merely holds (an instruction file, a legacy\ndirectory) changes a finding, never a projected byte.",
"type": "string"
}
]
},
"EditorSupport": {
"description": "What an adapter can do with one capability. Never a boolean: \"we do not know\" is an\nanswer of its own and is not \"no\".",
"oneOf": [
{
"const": "supported",
"description": "Projected, from a verified format.",
"type": "string"
},
{
"const": "unsupported",
"description": "The product has no project-level form for it.",
"type": "string"
},
{
"const": "unknown",
"description": "A project-level form is claimed somewhere and could not be verified; nothing written.",
"type": "string"
},
{
"const": "deprecated",
"description": "The product reads it, from a form this projection will not write.",
"type": "string"
},
{
"const": "requires_user_action",
"description": "A person can enable it, outside the repository; the remedy says how.",
"type": "string"
}
]
},
"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": "`editors.status`: every adapter, every projected file and its state, every finding.",
"properties": {
"adapters": {
"description": "The adapters, by id.",
"items": {
"$ref": "#/$defs/EditorAdapter"
},
"type": "array"
},
"artifacts": {
"description": "The projected files, by path.",
"items": {
"$ref": "#/$defs/EditorDerivation"
},
"type": "array"
},
"diagnostics": {
"description": "The findings, by severity then code then path.",
"items": {
"$ref": "#/$defs/EditorDiagnostic"
},
"type": "array"
},
"inputs": {
"description": "The inputs, by path.",
"items": {
"$ref": "#/$defs/EditorInput"
},
"type": "array"
},
"orphans": {
"description": "Generator-owned files under a projected directory that the plan no longer contains.",
"items": {
"type": "string"
},
"type": "array"
},
"projection_version": {
"description": "`PROJECTION_VERSION`.",
"format": "uint32",
"minimum": 0,
"type": "integer"
},
"schema": {
"description": "`SCHEMA`.",
"type": "string"
}
},
"required": [
"schema",
"projection_version",
"adapters",
"inputs",
"artifacts",
"diagnostics"
],
"title": "EditorProjection",
"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.