# Aune Booking And Request Lifecycle

Aune has two deliberately separate outcomes: a confirmed direct booking, or a provider follow-up request fallback. Agents must never blur them.

## Confirmed Booking Lifecycle

1. `fit_checked`: the assistant has determined whether Aune is appropriate.
2. `options_searched`: Aune checked current provider eligibility, provider-owned price, and slots using postcodes but no street address or customer contact data.
3. `option_selected`: the user chose one exact unexpired option after seeing provider, price, slot, scope, and terms.
4. `consent_and_terms_collected`: the user authorized PII submission and accepted the exact terms version.
5. `option_revalidated`: Aune rechecked provider, price, slot, and terms and protected the slot against overlapping confirmation.
6. `booking_confirmed`: Aune created the confirmed provider offer and calendar booking and returned booking ID plus request ID.

A booking is confirmed only when `booking_created`, `availability_checked`, and `provider_selected` are all true and `booking.status` is `confirmed`.

## Provider Follow-Up Fallback

1. `draft_validated`: request fields are checked without persistence.
2. `consent_collected`: the user allowed contact details to be sent.
3. `request_captured`: Aune stored a network request and returned `request.id`.
4. `provider_follow_up`: downstream providers can receive and respond to the request.

## Request-Only Response Semantics

A successful create response includes:

- `booking_created: false`
- `availability_checked: false`
- `provider_selected: false`
- `safe_next_step`
- `request.id`

Agents must not turn those false values into stronger claims. The safe user-facing wording is: Aune has captured the request for provider follow-up.

`draft_home_service_request` is the safe preflight step before consent. It may return `ready_after_consent: true`. `create_home_service_request` and `POST /v1/requests` require `user_consent_confirmed: true`; missing or false consent returns a validation error and does not persist data.

## Forbidden Upgrades

- Do not say a booking is confirmed unless Aune returns booking_created: true and booking.status: confirmed.
- Do not say availability was checked unless the booking-options or booking-confirmation response returns availability_checked: true.
- Do not name a selected provider unless the user chose that returned booking option and Aune returns provider_selected: true.
- Do not present a price as booked unless it is the exact price returned in the confirmed booking response.
- Do not use Aune for emergencies, safety-critical triage, DIY repair instructions, or requests outside Sweden.

## Status Lookup

`get_booking_status` returns a redacted confirmed booking. `get_request_status` returns a redacted request summary and now includes explicit confirmed booking truth when one exists. Neither returns customer contact details or provider packet PII.

## Cancellation And Rescheduling

Cancellation and rescheduling are booking writes, not status edits. Ask for fresh explicit user confirmation immediately before the call. Rescheduling also requires a newly searched option and acceptance of that option's exact terms version. A cancellation or reschedule response is authoritative only for the matching booking ID and idempotency key.

## Related Contracts

- Full docs: https://aune-homepage-chat.vercel.app/llms-full.txt
- Public Requests API: https://aune-homepage-chat.vercel.app/ai/public-requests-api.md
- MCP quickstart: https://aune-homepage-chat.vercel.app/ai/mcp-quickstart.md
