Skip to content

plan.status

Every milestone with its derived status and its issues counted by status, the milestone a worker is executing now, the next ready issue in full, and the plan's own totals. The counts are keyed by the declared vocabulary, which travels with the answer, so a status added to the engine appears here without anything being edited.

Every milestone with its derived status and its issues counted by status, the milestone a worker is executing now, the next ready issue in full, and the plan's own totals. The counts are keyed by the declared vocabulary, which travels with the answer, so a status added to the engine appears here without anything being edited.

  • query
  • behaviorally_verified
  • module plan
  • #plan
  • #project
  • #status

Exposure

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

surfaceas
MCPtool majordomus_plan_status
HTTPGET /api/v1/plan/status operationId plan.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 · PlanMilestoneFilter

Which part of the plan to answer about.
propertytyperequireddescription
milestone string | null no Restrict the answer to one milestone. Default: the whole plan, and for next the active milestone with the rest of the plan as the fallback.
JSON Schema
{
  "additionalProperties": false,
  "description": "Which part of the plan to answer about.",
  "properties": {
    "milestone": {
      "description": "Restrict the answer to one milestone. Default: the whole plan, and for `next` the\nactive milestone with the rest of the plan as the fallback.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "title": "PlanMilestoneFilter",
  "type": "object"
}

output · PlanStatusReport

Where the plan stands: every milestone's progress, the milestone being executed, and the one issue to take next.
propertytyperequireddescription
counts reference yes Every issue of the plan, counted by derived status.
milestones array yes Every milestone, in id order.
next_ready one of 2 no The next ready issue, when there is one.
project reference yes The plan's header, with the active milestone derived.
statuses reference yes The declared status vocabularies.
JSON Schema
{
  "$defs": {
    "PlanCounts": {
      "description": "A milestone's issues counted: the two denominators, then one entry per declared status.",
      "properties": {
        "by_status": {
          "additionalProperties": {
            "format": "uint32",
            "minimum": 0,
            "type": "integer"
          },
          "description": "One entry per declared issue status, keyed by the vocabulary.",
          "type": "object"
        },
        "required": {
          "description": "The denominator the milestone's own status derivation uses: total less cancelled, so\nno surface prints \"n of total\" for a milestone the engine calls DONE.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        },
        "total": {
          "description": "Every issue naming this milestone.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "total",
        "required",
        "by_status"
      ],
      "type": "object"
    },
    "PlanIssue": {
      "description": "One issue, as its record declares it and as the graph derives it.",
      "properties": {
        "blocked_by": {
          "description": "The dependencies that are not DONE, plus `milestone:<id>` when the milestone gate\nholds the whole outcome back.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "completed_at": {
          "description": "When completion was recorded.",
          "type": "string"
        },
        "dependents": {
          "description": "The issues that depend on this one.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "depends_on": {
          "description": "Every issue it declares a dependency on, as declared — including one that does not\nexist, which is a finding rather than a silent omission.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "evidence_have": {
          "description": "Evidence entries attached.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        },
        "evidence_need": {
          "description": "Evidence tokens the record requires before it may be DONE.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        },
        "id": {
          "description": "The identity, which is also the file name.",
          "type": "string"
        },
        "milestone": {
          "description": "The milestone it belongs to.",
          "type": "string"
        },
        "objective": {
          "description": "One line: what the issue is for.",
          "type": "string"
        },
        "parallel_safe": {
          "description": "Whether it may run beside another issue of its wave.",
          "type": "boolean"
        },
        "priority": {
          "description": "`p0` … `p3`.",
          "type": "string"
        },
        "profile": {
          "description": "The execution profile the issue is worked under.",
          "type": "string"
        },
        "scope": {
          "description": "The paths it touches; two issues of one wave that share a path are serialised.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "serves": {
          "description": "The intent criteria it exists to make true, each `<intent>#<criterion>`, as declared.\nEmpty for maintenance work under a milestone no intent names; whether a named\ncriterion exists is the intent coverage's question, not the plan's.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "slug": {
          "description": "The slug, when the record carries one.",
          "type": "string"
        },
        "started_at": {
          "description": "When execution began, when it did.",
          "type": "string"
        },
        "status": {
          "description": "The derived status. Never stored: an issue records what happened to it and the\nstatus follows from that and from the state of its dependencies.",
          "type": "string"
        },
        "title": {
          "description": "One line naming the outcome.",
          "type": "string"
        },
        "verified_at": {
          "description": "When implementation was declared complete.",
          "type": "string"
        },
        "wave": {
          "description": "The execution wave: one past the longest path to it through the dependency graph.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "id",
        "milestone",
        "status",
        "wave",
        "priority",
        "profile",
        "parallel_safe",
        "title",
        "slug",
        "depends_on",
        "blocked_by",
        "dependents",
        "scope",
        "serves",
        "objective",
        "evidence_have",
        "evidence_need",
        "started_at",
        "verified_at",
        "completed_at"
      ],
      "type": "object"
    },
    "PlanMilestoneProgress": {
      "description": "One milestone's progress, without its prose.",
      "properties": {
        "counts": {
          "$ref": "#/$defs/PlanCounts",
          "description": "Its issues, counted by derived status."
        },
        "id": {
          "description": "The identity.",
          "type": "string"
        },
        "status": {
          "description": "The derived status.",
          "type": "string"
        },
        "title": {
          "description": "One line naming the outcome.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "status",
        "title",
        "counts"
      ],
      "type": "object"
    },
    "PlanProject": {
      "description": "The plan's header: what this repository is, plus the one field nobody authors.",
      "properties": {
        "active_milestone": {
          "description": "The milestone a worker is executing now: the lowest-ranked unblocked milestone that\nis ACTIVE, else the lowest-ranked unblocked one not finished. Derived on every read,\nstored nowhere, and never authored — the plan cannot nominate a milestone whose\nprerequisites are not real.",
          "type": "string"
        },
        "default_branch": {
          "description": "The branch the plan is executed on.",
          "type": "string"
        },
        "name": {
          "description": "The project's name, from `project.yaml`.",
          "type": "string"
        },
        "repository": {
          "description": "The repository it belongs to, `owner/name`.",
          "type": "string"
        }
      },
      "required": [
        "name",
        "repository",
        "default_branch",
        "active_milestone"
      ],
      "type": "object"
    },
    "PlanVocabulary": {
      "description": "The status vocabularies, so a reader never has to know which statuses exist.",
      "properties": {
        "issue": {
          "description": "The issue statuses, in derivation order.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "milestone": {
          "description": "The milestone statuses, in derivation order.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "issue",
        "milestone"
      ],
      "type": "object"
    }
  },
  "description": "Where the plan stands: every milestone's progress, the milestone being executed, and the\none issue to take next.",
  "properties": {
    "counts": {
      "$ref": "#/$defs/PlanCounts",
      "description": "Every issue of the plan, counted by derived status."
    },
    "milestones": {
      "description": "Every milestone, in id order.",
      "items": {
        "$ref": "#/$defs/PlanMilestoneProgress"
      },
      "type": "array"
    },
    "next_ready": {
      "anyOf": [
        {
          "$ref": "#/$defs/PlanIssue"
        },
        {
          "type": "null"
        }
      ],
      "description": "The next ready issue, when there is one."
    },
    "project": {
      "$ref": "#/$defs/PlanProject",
      "description": "The plan's header, with the active milestone derived."
    },
    "statuses": {
      "$ref": "#/$defs/PlanVocabulary",
      "description": "The declared status vocabularies."
    }
  },
  "required": [
    "project",
    "statuses",
    "milestones",
    "counts"
  ],
  "title": "PlanStatusReport",
  "type": "object"
}

Policies

benchmark
required — a target on every transport the exposure declares; the cases are the input type's
cache
generation — up to 16 entries in the process, scoped by the registry fingerprint and the context's reading of the repository

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
directcovered2whole-plan cold+warm
one-milestone cold+warm
mcpcovered2whole-plan cold+warm
one-milestone cold+warm
httpcovered2whole-plan cold+warm
one-milestone cold+warm

Searches the titles and descriptions of every page this site publishes.