summarise_shipped_code
Asks Heimdall what a merged pull request shipped for its work item, from the pull request's title and the commit messages linked to the item, and keeps the answer on the pull request.
Get a plain account of what a merged pull request shipped, for an item's reporter and tester, without reading the code. Give code_reference_id of a merged pull request, from list_code_references. Heimdall is given the item with its acceptance criteria, the pull request as the webhook recorded it and the commits linked to the item by their messages, and answers with summary, two to four sentences on what changed, and highlights, up to five lines on criteria met or unmentioned, migrations, flags and risks; both are kept on the pull request and answered back with the reference, and asking again replaces them. The same summary is written on its own when a linked pull request merges on a project with the assists on, so read list_code_references first: a merged pull request usually carries one already. The call spends the team's AI budget and is booked against it; the same answer POST /v1/code-references/{codeReference}/summary writes. It needs ai:use, the project's assists on, and the holder's permission to change the project's items; a client guest's token is refused.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Arguments
code_reference_id*stringUUID of the merged pull request, as list_code_references lists it.
What it returns
{ "data": { "id": "4d5e6f70-8192-4cad-8e1f-3a4b5c6d7e8f", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "work_item_id": "b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e", "reference": "CRM-142", "work_item_title": "Apply a voucher at checkout", "repository_id": "9e8d7c6b-5a49-4382-a716-05f4e3d2c1b0", "repository_full_name": "zuse-technologies/portal", "kind": "pull_request", "external_id": "42", "ref": "#42", "title": "CRM-142 Apply the voucher at checkout", "url": "https://github.com/zuse-technologies/portal/pull/42", "author": "nimal", "state": "merged", "additions": 120, "deletions": 14, "opened_at": "2026-11-02T10:00:00+00:00", "merged_at": "2026-11-02T12:00:00+00:00", "closed_at": "2026-11-02T12:00:00+00:00", "linked_by": null, "summary": "Pull request #42 adds a voucher field to the basket and refuses an expired voucher, which covers the two criteria the messages name; the change is small and touches the checkout alone.", "highlights": [ "Check the basket total drops after a valid code.", "Nothing in the messages mentions the empty-code case." ], "summarised_at": "2026-11-02T12:00:40+00:00", "created_at": "2026-11-02T10:00:02+00:00", "updated_at": "2026-11-02T12:00:40+00:00" }}How it fails
VALIDATION_FAILEDcode_reference_id is not a UUID, the reference is a branch, a commit or a pull request that has not merged, or Heimdall could not reach its model; nothing is booked.
AI_BUDGET_EXHAUSTEDthe team's monthly AI budget has no room; nothing is booked.
RESOURCE_NOT_FOUNDunknown code_reference_id, or a reference the token may not see.
FORBIDDENthe token is a client guest's, the project's assists are off, or the holder may not use the assists or change the project's items.
TOKEN_MISSING_ABILITYtoken lacks ai:use.
How is this guide?
Last updated on