served.forge
Asks the forge, through its own command-line tool and with the caller's credential, for the newest deployments to every environment and the newest releases, in one query, and records the answer in the checkout-local state `deploy.observed` reads. Exit 0 when the forge answered and the answer was recorded, 12 when it could not be asked (no tool, no credential, no network, a repository the forge does not know): what was recorded before then stands, with its age.
Asks the forge, through its own command-line tool and with the caller's credential, for the newest deployments to every environment and the newest releases, in one query, and records the answer in the checkout-local state `deploy.observed` reads. Exit 0 when the forge answered and the answer was recorded, 12 when it could not be asked (no tool, no credential, no network, a repository the forge does not know): what was recorded before then stands, with its age.
- command
- behaviorally_verified
- module served
- #deployment
- #evidence
- #forge
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | — |
| HTTP | — |
| command line | majordomus served forge |
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 · ForgeObserved
served.forge came to: whether the forge answered, and what its answer held. The
answer itself is read through deploy.observed; this is the receipt of having asked.
use majordomus_cli::capability::builtin::served::ForgeObserved;
// a forge that could not be asked is said, with the reason, and is exit 12: not answered
let json = r#"{"observed":false,"reason":"gh repo view failed: no network",
"deployments":0,"releases":0,"environments":0,"exit_code":12}"#;
let got: ForgeObserved = serde_json::from_str(json).unwrap();
assert!(!got.observed);
assert_eq!(got.exit_code, 12);
assert!(got.repository.is_none());| property | type | required | description |
|---|---|---|---|
| deployments | integer | yes | How many deployments the answer held. |
| environments | integer | yes | How many environments those deployments went to. |
| exit_code | integer | yes | The exit status the command line reports: 0 observed, 12 not answered. |
| observed | boolean | yes | Whether the forge answered and the answer was recorded. |
| observed_at | string | null | no | When the forge was asked, RFC 3339. |
| reason | string | null | no | Why not, in the words of whatever refused; absent when it answered. |
| releases | integer | yes | How many releases the answer held. |
| repository | string | null | no | owner/name, as the forge named the repository. |
JSON Schema
{
"description": "What `served.forge` came to: whether the forge answered, and what its answer held. The\nanswer itself is read through `deploy.observed`; this is the receipt of having asked.\n\n```\nuse majordomus_cli::capability::builtin::served::ForgeObserved;\n// a forge that could not be asked is said, with the reason, and is exit 12: not answered\nlet json = r#\"{\"observed\":false,\"reason\":\"gh repo view failed: no network\",\n \"deployments\":0,\"releases\":0,\"environments\":0,\"exit_code\":12}\"#;\nlet got: ForgeObserved = serde_json::from_str(json).unwrap();\nassert!(!got.observed);\nassert_eq!(got.exit_code, 12);\nassert!(got.repository.is_none());\n```",
"properties": {
"deployments": {
"description": "How many deployments the answer held.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"environments": {
"description": "How many environments those deployments went to.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"exit_code": {
"description": "The exit status the command line reports: 0 observed, 12 not answered.",
"format": "int32",
"type": "integer"
},
"observed": {
"description": "Whether the forge answered and the answer was recorded.",
"type": "boolean"
},
"observed_at": {
"description": "When the forge was asked, RFC 3339.",
"type": [
"string",
"null"
]
},
"reason": {
"description": "Why not, in the words of whatever refused; absent when it answered.",
"type": [
"string",
"null"
]
},
"releases": {
"description": "How many releases the answer held.",
"format": "uint",
"minimum": 0,
"type": "integer"
},
"repository": {
"description": "`owner/name`, as the forge named the repository.",
"type": [
"string",
"null"
]
}
},
"required": [
"observed",
"deployments",
"releases",
"environments",
"exit_code"
],
"title": "ForgeObserved",
"type": "object"
}Policies
- benchmark
- waived — waived: external_dependency
- 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.
| transport | state | cases | targets |
|---|---|---|---|
| direct | waived (external_dependency) | 0 |