trace.commit
One commit with the issue and milestone it served, or the fact that none can be found. Attributed when exactly one issue's branches hold it, ambiguous when branches naming two issues do, and unattributed when no branch naming an issue holds it at all — which is either work committed without an execution contract or a branch deleted after its merge, and the answer says so rather than guessing between them.
One commit with the issue and milestone it served, or the fact that none can be found. Attributed when exactly one issue's branches hold it, ambiguous when branches naming two issues do, and unattributed when no branch naming an issue holds it at all — which is either work committed without an execution contract or a branch deleted after its merge, and the answer says so rather than guessing between them.
- query
- behaviorally_verified
- module trace
- #trace
- #git
- #plan
- #commit
- #provenance
Exposure
Where this one definition is reachable. Absence is explicit: a surface not listed does not carry it.
| surface | as |
|---|---|
| MCP | tool majordomus_trace_commit |
| HTTP | GET /api/v1/trace/commit operationId trace.commit |
| 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 · TraceCommitInput
One commit.
| property | type | required | description |
|---|---|---|---|
| commit | string | yes | Anything git resolves to a commit: a full or abbreviated object name, a ref, `HEAD`, `master~3`. |
JSON Schema
{
"additionalProperties": false,
"description": "One commit.",
"properties": {
"commit": {
"description": "Anything git resolves to a commit: a full or abbreviated object name, a ref, `HEAD`,\n`master~3`.",
"type": "string"
}
},
"required": [
"commit"
],
"title": "TraceCommitInput",
"type": "object"
}output · CommitAttribution
One commit and the contract it served, or the fact that none can be found.
| property | type | required | description |
|---|---|---|---|
| attribution | reference | yes | What is known. |
| branches | array | yes | The branches that contain it, by the names their refs carry. |
| commit | reference | yes | The commit. |
| issue | string | null | no | The issue, when exactly one claims it. |
| issues | array | yes | Every issue whose branches contain it: one when attributed, none when unattributed, more than one when ambiguous. |
| milestone | string | null | no | The milestone that issue belongs to, filled by the caller that has the index. |
| reason | string | yes | Why the verdict is what it is, in one line a person can act on. |
JSON Schema
{
"$defs": {
"Attribution": {
"description": "What is known about the contract one commit served.",
"oneOf": [
{
"const": "attributed",
"description": "Exactly one issue's branches contain it.",
"type": "string"
},
{
"const": "unattributed",
"description": "No branch naming an issue contains it.",
"type": "string"
},
{
"const": "ambiguous",
"description": "Branches naming more than one issue contain it.",
"type": "string"
}
]
},
"CommitRef": {
"description": "One commit, exactly as git names it. Nothing here is stored anywhere: the whole record\nis re-read from the object database on every call.",
"properties": {
"author": {
"description": "The author, as the commit records them.",
"type": "string"
},
"date": {
"description": "The author date, ISO 8601 as the commit records it.",
"type": "string"
},
"id": {
"description": "The full object name.",
"type": "string"
},
"short": {
"description": "The abbreviated object name, as this repository abbreviates it.",
"type": "string"
},
"subject": {
"description": "The subject line.",
"type": "string"
}
},
"required": [
"id",
"short",
"author",
"date",
"subject"
],
"type": "object"
}
},
"description": "One commit and the contract it served, or the fact that none can be found.",
"properties": {
"attribution": {
"$ref": "#/$defs/Attribution",
"description": "What is known."
},
"branches": {
"description": "The branches that contain it, by the names their refs carry.",
"items": {
"type": "string"
},
"type": "array"
},
"commit": {
"$ref": "#/$defs/CommitRef",
"description": "The commit."
},
"issue": {
"description": "The issue, when exactly one claims it.",
"type": [
"string",
"null"
]
},
"issues": {
"description": "Every issue whose branches contain it: one when attributed, none when unattributed,\nmore than one when ambiguous.",
"items": {
"type": "string"
},
"type": "array"
},
"milestone": {
"description": "The milestone that issue belongs to, filled by the caller that has the index.",
"type": [
"string",
"null"
]
},
"reason": {
"description": "Why the verdict is what it is, in one line a person can act on.",
"type": "string"
}
},
"required": [
"commit",
"attribution",
"issues",
"branches",
"reason"
],
"title": "CommitAttribution",
"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.