plan.roadmap
Graf milníků rozložený podle pořadí, přičemž `order` rozhoduje remízy jen uvnitř pořadí, a první neblokovaný nedokončený milník jako `now` a ten po něm jako `next`. Nic v posloupnosti se nepíše ručně: milník, jehož předpoklady nejsou skutečné, nelze nominovat, a právě to činí `každý krok je podmíněn tím, že předchozí je skutečný` invariantem, a ne větou.
Graf milníků rozložený podle pořadí, přičemž `order` rozhoduje remízy jen uvnitř pořadí, a první neblokovaný nedokončený milník jako `now` a ten po něm jako `next`. Nic v posloupnosti se nepíše ručně: milník, jehož předpoklady nejsou skutečné, nelze nominovat, a právě to činí `každý krok je podmíněn tím, že předchozí je skutečný` invariantem, a ne větou.
- query
- behaviorally_verified
- modul plan
- #plan
- #project
- #roadmap
Zpřístupnění
Kde je tato jedna definice dosažitelná. Absence je explicitní: povrch, který není uveden, ji nenese.
| povrch | jako |
|---|---|
| MCP | nástroj majordomus_plan_roadmap |
| HTTP | GET /api/v1/plan/roadmap operationId plan.roadmap |
| příkazová řádka | — |
Schémata
Kanonický vstup a výstup z typů Rustu; schéma nástroje MCP a parametry a odpovědi OpenAPI se odvozují z nich.
vstup · Prázdné
Žádné vlastnosti: schopnost nebere žádný vstup.
JSON Schema
{
"additionalProperties": false,
"description": "No input.",
"title": "Empty",
"type": "object"
}výstup · PlanRoadmap
| vlastnost | typ | povinné | popis |
|---|---|---|---|
| milníky | array | ano | Milníky seřazené podle ranku, pak pořadí, pak id, každý s releasem, který ho nesl (released_in). Posloupnost se odvozuje z grafu milníků a release ze záznamů releasů; nikde se neudržuje seznam verzí. |
| next | string | null | ne | Ten po něm, blokovaný nebo ne. |
| nyní | string | null | ne | První nedokončený, neblokovaný milník v této posloupnosti. |
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"
},
"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"
},
"last_accepted": {
"description": "The last accepted issue of a DONE milestone: its DONE issue with the latest\n`completed_at`, the greater id on a tie. Empty for a milestone that is not DONE, or\nthat is DONE with no issue (its evidence finished it). Which release carried it is\n`released_in`'s to answer.",
"type": "string"
},
"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"
},
"released_in": {
"description": "The release that carried the milestone — the first release record whose commit\ncontains the merge of its last accepted issue (or, with no issue, the commit that\nrecorded its latest evidence), else `unreleased` — when the reader\nasked for it\n(`released_in`); the roadmap always does. Never a typed field (ADR 0166).",
"type": [
"string",
"null"
]
},
"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"
}
},
"required": [
"id",
"status",
"order",
"priority",
"title",
"slug",
"rank",
"depends_on",
"blocked_by",
"dependents",
"claims",
"counts",
"issues",
"outcome"
],
"type": "object"
}
},
"description": "The milestones in derived order, with the one being executed and the one after it.",
"properties": {
"milestones": {
"description": "The milestones ordered by rank, then order, then id, each with the release that\ncarried it (`released_in`). The sequence is derived from the milestone graph and the\nrelease from the release records; no list of versions is maintained anywhere.",
"items": {
"$ref": "#/$defs/PlanMilestone"
},
"type": "array"
},
"next": {
"description": "The one after it, blocked or not.",
"type": [
"string",
"null"
]
},
"now": {
"description": "The first unfinished, unblocked milestone in that sequence.",
"type": [
"string",
"null"
]
}
},
"required": [
"milestones"
],
"title": "PlanRoadmap",
"type": "object"
}Politiky
- benchmark
- povinné — cíl na každém transportu, který expozice deklaruje; případy jsou ty ze vstupního typu
- cache
- generace — až 4 položky v procesu, vymezené otiskem registru a čtením repozitáře kontextem
Cíle benchmarku
Odvozeno z registru pro tento repozitář: jeden požadavek na transport a případy, které poskytuje typ vstupu. Celá matice je na stránce měření výkonu.