# Quality: tests and Guest Agent quality review — tool reference

Generated from the OpenAPI document (`https://maison-labs.com/api/v1/openapi.json`). Field types are JSON Schema types; GET/DELETE inputs travel as path or query, other methods as a JSON body.

## `dismiss_chat_feedback` — Dismiss a Guest Agent quality review item

Flip an OPEN Guest Agent quality review item to DISMISSED, recording an optional note. 404 when the item is not found. 409 when it is already DISMISSED or RESOLVED. Use resolve_chat_feedback to mark an item as resolved.

- REST: `POST https://maison-labs.com/api/v1/chatfeedback/{feedbackId}/dismiss`
- MCP tool / A2A skill: `dismiss_chat_feedback`
- Needs: chat-feedback WRITE (global)

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `feedbackId` | path | string | yes | Guest Agent quality review item id; format uuid |
| `note` | body | string | no | Optional dismissal note |

## `get_test_report` — Get a test run report

Retrieve the full per-question results for a test session: test id, client id, status (SUCCESS / FAIL / ERROR / QUEUED / IN_PROGRESS) and the raw report data. 404 when the session does not exist or belongs to a different client. Use list_test_runs to find session ids.

- REST: `GET https://maison-labs.com/api/v1/client/{clientId}/testrun/{sessionId}`
- MCP tool / A2A skill: `get_test_report`
- Needs: test-session READ (client); client plan must include `test-session`
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `clientId` | path | string | yes | Client (hotel) id; format uuid |
| `sessionId` | path | string | yes | Test session id from list_test_runs; format uuid |

## `list_chat_feedback` — List Guest Agent quality review items

Page through the Maison-global Guest Agent quality review queue (feature `chat-feedback`). Returns items, per-topic counts and the most recent run metadata. Filter by status, topic or a specific hotel. Use run_chat_feedback to trigger scoring; use resolve_chat_feedback / dismiss_chat_feedback to action items.

- REST: `GET https://maison-labs.com/api/v1/chatfeedback`
- MCP tool / A2A skill: `list_chat_feedback`
- Needs: chat-feedback READ (global)
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `status` | query | enum: OPEN \| RESOLVED \| DISMISSED | no | Filter by item status; default OPEN |
| `topic` | query | string | no | Filter by topic key |
| `clientId` | query | string | no | Limit to a specific hotel; format uuid |
| `limit` | query | integer | no | Page size (1–200) |
| `cursor` | query | string | no | Opaque cursor from the previous page |

## `list_chat_tests` — List chat tests

Return all authored chat-test cases for a hotel. Use run_chat_tests to run them; use list_golden_questions to see the golden FAQ set.

- REST: `GET https://maison-labs.com/api/v1/client/{clientId}/chattests`
- MCP tool / A2A skill: `list_chat_tests`
- Needs: test-session READ (client); client plan must include `test-session`
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `clientId` | path | string | yes | Client (hotel) id; format uuid |

## `list_golden_questions` — List golden FAQ questions

Return all golden test questions for a hotel with their recent pass/fail history. Use run_golden_faq_test to run a subset or all of them; use list_chat_tests to see general chat tests.

- REST: `GET https://maison-labs.com/api/v1/client/{clientId}/goldenfaq`
- MCP tool / A2A skill: `list_golden_questions`
- Needs: test-session READ (client); client plan must include `test-session`
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `clientId` | path | string | yes | Client (hotel) id; format uuid |

## `list_test_runs` — List test runs

Page through test session runs for a hotel ordered newest first. Returns session ids, descriptions, created/completed dates and per-run success/fail/error counts. Use get_test_report to fetch the per-question results for a specific run.

- REST: `GET https://maison-labs.com/api/v1/client/{clientId}/testruns`
- MCP tool / A2A skill: `list_test_runs`
- Needs: test-session READ (client); client plan must include `test-session`
- Read-only.

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `clientId` | path | string | yes | Client (hotel) id; format uuid |
| `limit` | query | integer | no | Page size (1–100); default 20 |
| `after` | query | string | no | Opaque cursor from the previous page's `nextCursor`; omit for the first page |

## `reopen_chat_feedback` — Reopen a Guest Agent quality review item

Flip a RESOLVED or DISMISSED Guest Agent quality review item back to OPEN. 404 when not found. 409 when already OPEN. Use resolve_chat_feedback or dismiss_chat_feedback to close an item.

- REST: `POST https://maison-labs.com/api/v1/chatfeedback/{feedbackId}/reopen`
- MCP tool / A2A skill: `reopen_chat_feedback`
- Needs: chat-feedback WRITE (global)

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `feedbackId` | path | string | yes | Guest Agent quality review item id; format uuid |

## `resolve_chat_feedback` — Resolve a Guest Agent quality review item

Flip an OPEN Guest Agent quality review item to RESOLVED, recording an optional note. 404 when the item is not found. 409 when the item is already RESOLVED or DISMISSED. Use dismiss_chat_feedback to dismiss instead.

- REST: `POST https://maison-labs.com/api/v1/chatfeedback/{feedbackId}/resolve`
- MCP tool / A2A skill: `resolve_chat_feedback`
- Needs: chat-feedback WRITE (global)

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `feedbackId` | path | string | yes | Guest Agent quality review item id; format uuid |
| `note` | body | string | no | Optional resolution note |

## `run_chat_feedback` — Run Guest Agent quality review scoring

Trigger an asynchronous Guest Agent quality review scoring run. Pass a clientId to score one hotel; omit it to run all active hotels. The run is fire-and-forget — it returns immediately (202). Use list_chat_feedback to check results after the run completes.

- REST: `POST https://maison-labs.com/api/v1/chatfeedback/run`
- MCP tool / A2A skill: `run_chat_feedback`
- Needs: chat-feedback EXECUTE (global)

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `clientId` | body | string | no | Limit scoring to this hotel; omit to score all active hotels; format uuid |

## `run_chat_tests` — Run chat tests

Enqueue an ad-hoc test session from a set of test cases and client ids. Requires test-session EXECUTE for every distinct client referenced in the tests array. Returns the new sessionId. Use run_golden_faq_test to run the hotel's pre-defined golden FAQ set.

- REST: `POST https://maison-labs.com/api/v1/client/{clientId}/testrun`
- MCP tool / A2A skill: `run_chat_tests`
- Needs: test-session EXECUTE (client); client plan must include `test-session`

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `clientId` | path | string | yes | Client (hotel) id; format uuid |
| `description` | body | string | yes | Label for this test run |
| `tests` | body | array of object | yes | Test cases to include in this run |

## `run_golden_faq_test` — Run golden FAQ test

Enqueue a golden FAQ test run for a hotel. Pass an optional array of questionIds to run a specific subset; omit it to run all. Returns the new sessionId. 409 when a golden run is already in progress. Use run_chat_tests to run authored chat tests.

- REST: `POST https://maison-labs.com/api/v1/client/{clientId}/testrun/goldenfaq`
- MCP tool / A2A skill: `run_golden_faq_test`
- Needs: test-session EXECUTE (client); client plan must include `test-session`

Inputs:

| Field | Where | Type | Required | Notes |
| --- | --- | --- | --- | --- |
| `clientId` | path | string | yes | Client (hotel) id; format uuid |
| `questionIds` | body | array of string | no | Specific golden question ids to run; omit to run all |
