← All playbooks · Raw API
task-navigation
# Capability: Navigation
## Intent phrases
- update menu
- change navigation links
- edit footer
## Requires capabilities
`navigation`
## Prerequisites
- Read `cms-edit://customer/routing` for URL shapes
- `cms_edit ["index", "sync"]` for navigation entry lookup
## Steps
1. `cms_edit ["list", "--type", "navigation"]` — find nav entry
2. `cms_edit ["nav", "open", "--nav-id", "<navigationId>"]` or `["nav", "open", "--nav-name", "Main menu"]` — **not** `--id`
3. `snapshot` — inspect nav items (array field may be `entries`, `items`, or `navigationItems`)
4. **Ask** whether the change is **global** (template `menu`) or **page-specific** (`page.menu` override). Nested children (often the last header CTA) are usually **shared**.
- Global: `set` on the existing NavigationItem
- Page-specific: new NavigationItem + cloned/new menu, then `set` `page.menu` — do not mutate the shared item
5. Add/clone/link items per navigation commands. `nav clone` is **shallow** for nested `navigationItems`.
6. `diff` → `save`
`peek` is one-shot. `open` / `nav open` persist. `preview urls /slug` follows that slug even if session `_mcp` is another page.
See `contentful-cms-navigation` skill for full command reference in dev environments.
## Confirmation gates
1. Confirm which menu (header/footer) and whether the edit is global vs this page
2. `diff` before `save`
## Out of scope
- Publish
## Related resources
- `cms-edit://customer/routing`