# Capability: Create a page

## Intent phrases

- create a new page
- add a landing page
- new marketing page

## Requires capabilities

`pages`

## Prerequisites

- Read `cms-edit://customer/components-index` and `cms-edit://customer/routing`
- `cms_edit ["index", "sync"]` for template lookup

## Steps

1. `cms_edit ["list", "--type", "template"]` — pick template ID
2. `cms_edit ["create", "page", "--slug", "<slug>", "--title", "<title>", "--template-id", "<id>"]`
3. `cms_edit ["snapshot"]` — review structure
4. Add components: `add <ComponentType>`; set fields with `set` / `rtf`
5. `cms_edit ["diff"]` → `cms_edit ["save"]`

For multi-component pages, prefer `create from-json --json '{…}' --dry-run --strict` first.

After each `add`, set `heading` then `cmsLabel` (not left as `New Generic`).

Test/agent pages: `indexed: false`, omit `hidden` (visible on production when published).

## Confirmation gates

1. Confirm slug, title, and template with user
2. `create from-json --dry-run --strict` before create when using JSON
3. `diff` before `save`

## Out of scope

- Publish

## Related resources

- `cms-edit://customer/components-index`
- `task-create-from-document` for doc-driven pages