Skip to content

plan.record

A milestone with its issues in full, or an issue with the issues it waits on in full. The record's own prose stays where it has always been — `majordomus://issue/<id>` returns the file — and this answers what the file cannot say about itself: what its status is, where it sits in the graph, and what is between it and being executable.

A milestone with its issues in full, or an issue with the issues it waits on in full. The record's own prose stays where it has always been — `majordomus://issue/<id>` returns the file — and this answers what the file cannot say about itself: what its status is, where it sits in the graph, and what is between it and being executable.

  • query
  • behaviorally_verified
  • module plan
  • #plan
  • #project
  • #issues
  • #milestones

Exposure

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

surfaceas
MCPtool majordomus_plan_record
HTTPGET /api/v1/plan/record operationId plan.record
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 · PlanRecordInput

One record of the plan.

propertytyperequireddescription
id string yes The id of a milestone or an issue, as its file is named (`I0001`, `work-graph-github`).
JSON Schema
{
  "additionalProperties": false,
  "description": "One record of the plan.",
  "properties": {
    "id": {
      "description": "The id of a milestone or an issue, as its file is named (`I0001`, `work-graph-github`).",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "title": "PlanRecordInput",
  "type": "object"
}

output · PlanRecord

One record of the plan, milestone or issue, with everything derived about it.

No properties.

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"
        },
        "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",
        "objective",
        "evidence_have",
        "evidence_need",
        "started_at",
        "verified_at",
        "completed_at"
      ],
      "type": "object"
    },
    "PlanMilestone": {
      "description": "One milestone, as its record declares it and as the two graphs derive it.",
      "properties": {
        "blocked_by": {
          "description": "Those of them that are not DONE. Non-empty means the gate holds every issue of this\nmilestone back, whatever the issue graph says.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "claims": {
          "description": "The claims of the repository this outcome makes true.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "counts": {
          "$ref": "#/$defs/PlanCounts",
          "description": "Its issues, counted by derived status."
        },
        "dependents": {
          "description": "The milestones that require it.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "depends_on": {
          "description": "The milestones it requires.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "id": {
          "description": "The identity, which is also the file name; a stable slug, never a version.",
          "type": "string"
        },
        "issues": {
          "description": "Its issues, in id order.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "order": {
          "description": "Tie-break inside one rank; the roadmap is ordered by rank first.",
          "format": "int64",
          "type": "integer"
        },
        "outcome": {
          "description": "One line: what is true once the milestone is real.",
          "type": "string"
        },
        "priority": {
          "description": "`p0` … `p3`.",
          "type": "string"
        },
        "rank": {
          "description": "Its layer in the milestone graph: what orders the roadmap.",
          "format": "uint32",
          "minimum": 0,
          "type": "integer"
        },
        "slug": {
          "description": "The slug, when the record carries one.",
          "type": "string"
        },
        "status": {
          "description": "The derived status.",
          "type": "string"
        },
        "title": {
          "description": "One line naming the outcome.",
          "type": "string"
        },
        "version": {
          "description": "The release the milestone belongs to, when it declares one.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "status",
        "order",
        "priority",
        "title",
        "slug",
        "version",
        "rank",
        "depends_on",
        "blocked_by",
        "dependents",
        "claims",
        "counts",
        "issues",
        "outcome"
      ],
      "type": "object"
    }
  },
  "anyOf": [
    {
      "description": "A milestone.",
      "properties": {
        "issues": {
          "description": "Its issues in full, in id order.",
          "items": {
            "$ref": "#/$defs/PlanIssue"
          },
          "type": "array"
        },
        "milestone": {
          "$ref": "#/$defs/PlanMilestone",
          "description": "The milestone, with its counts, its rank and both directions of its graph."
        }
      },
      "required": [
        "milestone",
        "issues"
      ],
      "type": "object"
    },
    {
      "description": "An issue.",
      "properties": {
        "depends_on": {
          "description": "The issues it waits on, in full.",
          "items": {
            "$ref": "#/$defs/PlanIssue"
          },
          "type": "array"
        },
        "issue": {
          "$ref": "#/$defs/PlanIssue",
          "description": "The issue, with its status, its wave and both directions of its graph."
        }
      },
      "required": [
        "issue",
        "depends_on"
      ],
      "type": "object"
    }
  ],
  "description": "One record of the plan, milestone or issue, with everything derived about it.",
  "title": "PlanRecord"
}

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
directcovered2issue
milestone
mcpcovered2issue
milestone
httpcovered2issue
milestone