# Agent Skills for WHOLE Sapporo Maruyama

## Site Overview
Physical Conditioning Salon WHOLE Sapporo Maruyama — a premium massage, acupuncture, and cosmetic acupuncture salon in Sapporo, Japan.

## Available Agent Actions

### 1. Find Service Information
- **Endpoint:** `/services`, `/massage`, `/beauty`, `/acupuncture`
- **Description:** Browse detailed service menus including massage therapy, cosmetic acupuncture, and traditional acupuncture treatments with pricing and duration.
- **Method:** Navigate to respective service pages

### 2. Read Therapist Profile
- **Endpoint:** `/therapist`
- **Description:** View the therapist's credentials including 25 years of experience, national certifications (Judo Therapist, Acupuncturist), and treatment philosophy.
- **Method:** Navigate to therapist page

### 3. Read Customer Testimonials
- **Endpoint:** `/testimonials`
- **Description:** Access verified customer reviews and ratings for all treatment types.
- **Method:** Navigate to testimonials page

### 4. Access Blog Articles
- **Endpoint:** `/blog`
- **Description:** Read health and wellness articles covering topics like self-care, seasonal health tips, and treatment explanations.
- **Method:** Navigate to blog listing or individual articles at `/blog/{id}`

### 5. Get Location & Hours
- **Endpoint:** `/area`
- **Description:** Find the salon address, map, directions from Maruyama Koen Station (3 min walk), and business hours (10:00-22:00, by appointment only).
- **Method:** Navigate to area page

### 6. Read FAQ
- **Endpoint:** `/faq`
- **Description:** Browse frequently asked questions about treatments, pricing, preparation, and aftercare.
- **Method:** Navigate to FAQ page

### 7. Contact Information
- **Endpoint:** `/contact`
- **Description:** Access phone number (+81-11-600-6702), LINE booking link, and online reservation system.
- **Method:** Navigate to contact page or use direct reservation link

### 8. Sitemap
- **Endpoint:** `/sitemap.xml`
- **Description:** Full XML sitemap with all site pages and blog articles for comprehensive site structure discovery.
- **Method:** Fetch sitemap.xml directly

### 9. API Catalog (RFC 9727)
- **Endpoint:** `/.well-known/api-catalog`
- **Description:** Machine-readable API catalog in `application/linkset+json` format listing all discoverable site endpoints with link relations (service-desc, service-doc, status). Enables automated API discovery per RFC 9727.
- **Method:** GET with `Accept: application/linkset+json`

### 10. OAuth 2.0 & OpenID Connect Discovery (RFC 8414 / OIDC Discovery)
- **Endpoint:** `/.well-known/oauth-authorization-server` (OAuth 2.0, RFC 8414) and `/.well-known/openid-configuration` (OpenID Connect)
- **Description:** Discovery metadata for programmatic authentication endpoint discovery. Returns `issuer`, `authorization_endpoint`, `token_endpoint`, `jwks_uri`, and supported grant/response types in `application/json` format.
- **Method:** GET either endpoint directly
- **Note:** This site is a static public business website. The endpoints are published for agent discovery compliance per RFC 8414. Public API access is available without authentication.

### 11. WebMCP (Web Model Context Protocol) — Browser-Level Tool Exposure
- **Protocol:** WebMCP — W3C Web Machine Learning CG
- **Description:** Exposes the salon's key actions as structured tools to AI agents directly via the browser's `navigator.modelContext.provideContext()` API. When a compatible AI agent (e.g., Chrome 146+ with WebMCP flags) visits the site, it discovers the following executable tools:
  - `getServices` — List all treatment menus with prices and descriptions
  - `getServiceDetail` — Get detailed info for a specific service by ID
  - `searchServices` — Search services by keyword (symptom or treatment name)
  - `getLocationInfo` — Get address, hours, access, and map coordinates
  - `getFAQ` — Fetch FAQ entries, optionally filtered by keyword
  - `getTherapistProfile` — Get therapist credentials and philosophy
  - `getContactInfo` — Get phone, booking URL, LINE, and Instagram links
  - `getBookingUrl` — Get the direct online reservation URL
- **Compatibility:** Gracefully degrades on browsers without WebMCP support. Chrome 146+ with "Experimental Web Platform Features" flag enabled required for native support.
- **Registration:** Tools are registered on page load via `src/utils/webmcp.ts`.
- **Security:** All exposed tools are read-only (`readOnlyHint: true`) — they return static salon information without modifying any data.

### 12. Agent Skills Discovery Index (RFC v0.2.0)
- **Endpoint:** `/.well-known/agent-skills/index.json`
- **Description:** Machine-readable skills discovery index per the Cloudflare Agent Skills Discovery RFC v0.2.0. Contains a JSON manifest with a `$schema` field and a `skills` array listing each skill artifact with `name`, `type`, `description`, `url`, and `sha256` digest for integrity verification.
- **Method:** GET with `Accept: application/json`
- **Content:** Returns a JSON object with a single skill entry for this salon (`whole-sapporo-maruyama-salon`, type `skill-md`) pointing to `/.well-known/agent-skills/SKILL.md`.
- **Discovery:** This SKILL.md file is the primary skill artifact. The `index.json` is the programmatic discovery index. Agents can discover the skill via:
  - Direct `GET /.well-known/agent-skills/index.json`
  - `Link` header on the home page with `rel="agent-skill"`
  - HTML `<link rel="agent-skill">` tag in the page head

### 13. x402 Protocol — Agent-Native HTTP Payments
- **Protocol:** x402 (Coinbase, 2025) — HTTP 402 Payment Required
- **Endpoint:** `/.well-known/x402.json` (configuration) and `/api/premium-content`, `/api/personalized-plan` (protected resources)
- **Description:** Enables AI agents to make autonomous, on-chain micro-payments for accessing premium API content. The server returns HTTP 402 with payment requirements when no `X-Payment` header is present. Agents construct a payment payload, send it in the `X-Payment` header, and receive the protected content.
- **Payment Requirements:**
  - **Network:** `base-mainnet` (Base Mainnet)
  - **Asset:** USDC (`0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`)
  - **Payee:** `0x209693Bc6afc0C5328bA36FaF03C514EF312287C`
  - **Scheme:** `exact` — exact amount payment
- **Protected Resources:**
  - `/api/premium-content` — Premium wellness articles and treatment analytics (0.10 USDC)
  - `/api/personalized-plan` — AI-generated personalized treatment plan (0.50 USDC)
- **Request Flow:**
  1. `GET /api/premium-content` → `402 Payment Required` with JSON requirements
  2. Agent constructs payment: `{ scheme: "exact", network: "base-mainnet", txid: "...", payTo: "...", amount: "..." }`
  3. `GET /api/premium-content` with `X-Payment: {payment}` → `200 OK` with content
- **Discovery:** Agents can discover x402 support via:
  - `GET /.well-known/x402.json` — configuration and pricing
  - `Link` header on the home page with `rel="x402"`
  - HTML `<link rel="x402">` tag in the page head
- **Note:** This is a demonstration implementation for the x402 protocol. The salon accepts traditional fiat payments (cash, credit card, QR code) for in-person services. x402 is provided for agent-native API access to premium digital content.

## Business Information
- **Name:** フィジカルコンディショニングサロン WHOLE 札幌円山
- **Address:** 札幌市中央区大通西24丁目2-18 パレンテ301
- **Phone:** 011-600-6702
- **Hours:** 10:00-22:00 (last appointment 20:00)
- **Reservation:** By appointment only, max 3 clients per day
- **Languages:** Japanese (primary)