list_quality_reviews
The quality reviews Heimdall wrote of one work item, requirement or business rule, newest first, each with the version it read, its score, band, summary and findings; free to call.
Return every quality review Heimdall wrote of one record, newest first: each with the version of the record it read, the score and its band, a summary and the findings with their codes, severities, the words concerned and the suggestions. Read the first review before you implement or test a record, and compare its version with the record's current version from list_revisions: a review of an older version may be stale, and only review_quality spends the budget to refresh it.
The record is named by artefact_type (work-item, requirement or business-rule) and artefact_id. The list is empty for a record never reviewed. A guest token is refused.
Requires ability
The token behind the MCP session must hold it, or the call is refused with TOKEN_MISSING_ABILITY.
Runs the same actions as
The REST endpoint and this tool share one action, so validation, permissions and events are identical.
Annotations
It reads and never changes anything.
Arguments
artefact_type*stringThe record's type: a work item, a requirement or a business rule.
work-itemrequirementbusiness-ruleartefact_id*stringUUID of the record whose reviews to list.
What it returns
{ "data": [ { "id": "b7c8d9e0-f1a2-4b3c-8d4e-5f6a7b8c9d01", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "artefact_type": "work-item", "artefact_id": "0f9e8d7c-6b5a-4c3d-8e2f-1a0b9c8d7e6f", "version": 3, "score": 71, "band": "needs_work", "summary": "A clear story with a measurable goal; one criterion cannot be verified as written and one word leaves the scope open.", "findings": [ { "code": "testable", "severity": "high", "message": "The criterion \"the basket updates quickly\" cannot pass or fail: \"quickly\" has no limit.", "suggestion": "Then the basket total updates within 1 second of the voucher being applied.", "field": "criteria" } ], "findings_count": 1, "provider": "anthropic", "model": "the model the quality role is configured with", "usage_id": "c9d0e1f2-a3b4-4c5d-8e6f-7a8b9c0d1e23", "reviewed_by": "c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f", "reviewer_name": "Jane Doe", "reviewed_at": "2026-10-28T11:00:00+00:00", "created_at": "2026-10-28T11:00:00+00:00" }, { "id": "a6b7c8d9-e0f1-4a2b-8c3d-4e5f6a7b8c90", "project_id": "7f3d1c92-8b45-4e6a-9d21-5c8e0a4b6f13", "artefact_type": "work-item", "artefact_id": "0f9e8d7c-6b5a-4c3d-8e2f-1a0b9c8d7e6f", "version": 1, "score": 40, "band": "not_ready", "summary": "The story has no acceptance criteria and reads as an epic.", "findings": [ { "code": "missing_criteria", "severity": "high", "message": "The story has no acceptance criteria.", "suggestion": "Add one criterion per outcome: the voucher applied, refused when expired, refused twice.", "field": "criteria" }, { "code": "small", "severity": "high", "message": "\"Apply vouchers, gift cards and loyalty points at checkout\" is three stories.", "suggestion": "Split it: one story per tender kind.", "field": "title" }, { "code": "ambiguous", "severity": "medium", "message": "\"Some vouchers\" leaves open which vouchers apply.", "suggestion": "Name the voucher kinds.", "field": "description" } ], "findings_count": 3, "provider": "anthropic", "model": "the model the quality role is configured with", "usage_id": "d0e1f2a3-b4c5-4d6e-8f7a-8b9c0d1e2f34", "reviewed_by": "c3d4e5f6-a7b8-4c9d-8e0f-1a2b3c4d5e6f", "reviewer_name": "Jane Doe", "reviewed_at": "2026-10-27T15:30:00+00:00", "created_at": "2026-10-27T15:30:00+00:00" } ]}How it fails
VALIDATION_FAILEDartefact_type is not work-item, requirement or business-rule; the response lists them.
RESOURCE_NOT_FOUNDunknown artefact_id, or a record of a project outside the token's scope or the person's visibility.
FORBIDDENthe token is a client guest's.
TOKEN_MISSING_ABILITYtoken lacks activity:read.
Related
How is this guide?
Last updated on