# Capability: Preview verification

## Intent phrases

- preview changes
- check staging
- verify page looks right
- open in browser

## Requires capabilities

Always available.

## Prerequisites

- Draft saved (`save` creates drafts)
- Staging URL from `cms-edit://customer/overview` or `capabilities.json` → `website.devBaseUrl`
- Entry ID from session (after `open` / `save`) or `--entry-id`

## Preview targets

After saving a draft, agents should return **all applicable URLs** and explain which to use when.

| Target | Label | When to use |
|--------|-------|-------------|
| **contentfulLivePreview** | Live preview (publish here) | **Primary for editors.** Opens `app.contentful.com/.../entries/.../preview/...` — in-app preview with inspector. User clicks the green **Publish** button at the top to go live. |
| **staging** | Preview (staging site) | Full-page check on staging, e.g. `{devBaseUrl}/resources/news/{tag}/{slug}/` (includes Vercel bypass params when configured). |
| **siteLivePreview** | Preview redirect | `{devBaseUrl}/preview?id={entryId}` — entry-aware redirect to the staging path. |
| **production** | Production site | Published content only — compare after publish. |
| **contentfulEntry** | Contentful entry editor | Classic entry form. Prefer **Live preview** for review and publish. |

## Steps

1. After `save`, list all preview URLs:
   ```
   cms_edit ["preview", "urls", "<slug>"]
   ```
   Or with explicit entry ID:
   ```
   cms_edit ["preview", "urls", "<slug>", "--entry-id", "<entry-id>"]
   ```
   Use `--json` for machine-readable output.

2. **Hand off to the editor with both links:**
   - **Live preview** — for reviewing the draft and publishing (green Publish button in Contentful).
   - **Preview (staging site)** — for a full-screen check on the staging deployment.

3. Summarize what to check (headings, CTAs, images, template blocks) before publish handoff.

### Legacy single URL

```
cms_edit ["preview", "url", "--page-slug", "<slug>"]
```

Returns the staging preview path only.

## Confirmation gates

1. Confirm draft saved before preview
2. Summarize what to check (headings, CTAs, images)
3. Tell user production URL will not show draft content until published

## Out of scope

- Publish (human uses Live preview → Publish button)

## Related resources

- `cms-edit://customer/overview`
- `cms-edit://customer/task-publish-handoff`
- `cms-edit://customer/production-site`