Agent Skills / maison-quality

Install this skill alone, or read it below. Raw file: SKILL.md · references/tools.md

bash
npx skills add https://docs.maison-labs.com --skill maison-quality

Maison — Quality: tests and Guest Agent quality review

Measure answer quality: run and read golden-FAQ test runs and chat test runs for a hotel, list the golden questions and chat tests, and (Maison staff) work the Guest Agent quality review queue (chat-feedback) — list items, run the classifier, resolve, dismiss or reopen. Use after knowledge changes to prove nothing regressed, or to triage conversations the classifier flagged as poor.

Part of the Maison public API. Read the maison-public-api skill first for authentication, discovery and transport details (https://docs.maison-labs.com/skills/maison-public-api/SKILL.md).

When to use

  • Regression-test a hotel after content changes — run_golden_faq_test, then get_test_report.
  • Triage flagged conversations — list_chat_feedback with status: "OPEN".

Before you start

  1. Send x-api-key: <key> on every call; the key only reaches /api/v1.
  2. GET /api/v1/tools (or MCP tools/list) returns the tools THIS key may run — if a tool below is missing there, you lack a grant; do not retry it.
  3. Client-scoped tools take clientId (a hotel id). whoami lists the ids you can act on.

Tools

ToolWhat it doesRESTNeeds
dismiss_chat_feedbackFlip an OPEN Guest Agent quality review item to DISMISSED, recording an optional note.POST /api/v1/chatfeedback/{feedbackId}/dismisschat-feedback WRITE (global)
get_test_reportRetrieve 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.GET /api/v1/client/{clientId}/testrun/{sessionId}test-session READ (client); plan: test-session; read-only
list_chat_feedbackPage through the Maison-global Guest Agent quality review queue (feature chat-feedback).GET /api/v1/chatfeedbackchat-feedback READ (global); read-only
list_chat_testsReturn all authored chat-test cases for a hotel.GET /api/v1/client/{clientId}/chatteststest-session READ (client); plan: test-session; read-only
list_golden_questionsReturn all golden test questions for a hotel with their recent pass/fail history.GET /api/v1/client/{clientId}/goldenfaqtest-session READ (client); plan: test-session; read-only
list_test_runsPage through test session runs for a hotel ordered newest first.GET /api/v1/client/{clientId}/testrunstest-session READ (client); plan: test-session; read-only
reopen_chat_feedbackFlip a RESOLVED or DISMISSED Guest Agent quality review item back to OPEN.POST /api/v1/chatfeedback/{feedbackId}/reopenchat-feedback WRITE (global)
resolve_chat_feedbackFlip an OPEN Guest Agent quality review item to RESOLVED, recording an optional note.POST /api/v1/chatfeedback/{feedbackId}/resolvechat-feedback WRITE (global)
run_chat_feedbackTrigger an asynchronous Guest Agent quality review scoring run.POST /api/v1/chatfeedback/runchat-feedback EXECUTE (global)
run_chat_testsEnqueue an ad-hoc test session from a set of test cases and client ids.POST /api/v1/client/{clientId}/testruntest-session EXECUTE (client); plan: test-session
run_golden_faq_testEnqueue a golden FAQ test run for a hotel.POST /api/v1/client/{clientId}/testrun/goldenfaqtest-session EXECUTE (client); plan: test-session

Full input fields for every tool: references/tools.md.

Recommended workflows

Golden FAQ run

  1. list_golden_questions (optional, to pick questionIds).
  2. run_golden_faq_test (202) → returns the session id.
  3. Poll list_test_runs; when complete, get_test_report for per-question scores.

Tips

  • Test tools need the hotel's plan to include test-session and the caller's test-session grant.

Pitfalls

  • Guest Agent quality review tools are Maison-wide (chat-feedback global grant) — they are not per-hotel permissions.
  • A 409 on a status change means the item is already in that state.

Calling conventions

Same tool, three transports — pick whichever your runtime already speaks. Always send x-api-key.

bash
# REST
curl -X POST "https://maison-labs.com/api/v1/chatfeedback/<feedbackId>/dismiss" -H "x-api-key: $MAISON_API_KEY" -H "content-type: application/json" -d '{}'
json
// MCP (https://maison-labs.com/mcp, Streamable HTTP): tools/call
{ "jsonrpc": "2.0", "id": 1, "method": "tools/call", "params": { "name": "dismiss_chat_feedback", "arguments": {} } }
json
// A2A (https://maison-labs.com/a2a): tasks/send with a data part
{ "jsonrpc": "2.0", "id": 1, "method": "tasks/send", "params": { "message": { "role": "user", "parts": [{ "type": "data", "data": { "tool": "dismiss_chat_feedback", "input": {} } }] } } }

Errors are the same everywhere: 401 no/invalid key; 403 forbidden with details.missing (the grants you lack — fall back to the composite's parts or stop); 403 not_entitled (the hotel's plan lacks the feature); 404, 409, 413 too_large, 503. Inputs that fail validation return 400 invalid_input with the Zod issues — fix and retry once.