# Capability: News article images (composite)

## Intent phrases

- create news article images
- branded news card image
- OG image for press release
- frame news photo
- news composite image
- portrait and landscape news images

## Requires capabilities

`articles`

## Prerequisites

- Read `cms-edit://customer/news-images` (full playbook)
- Read `cms-edit://customer/news-pages`
- `cms_edit ["index", "sync"]`

## Steps

### When user supplies composite image files (hosted MCP)

1. `cms_edit ["index", "sync"]`
2. **Search** for existing `News composite —` assets and Media entry (`list --type media --asset-id <portraitAssetId>`) — see `news-images` playbook **Hosted MCP workflow**
3. If match: link **shared** `visuals[0]` media entry ID + `featuredImage` landscape asset ID to each article (`set` + `asset set` → `diff` → `save`)
4. If no match: staged upload portrait + landscape **once**, `create media` **once**, then link same IDs to all articles in the batch
5. `preview urls` on each article → `task-publish-handoff`

**Do not** use `asset upload --with-media` or `create media` per article when composites are shared.

### When studio is available (dev/preview)

1. Open News Image Studio: `/cms/news-images?slug={slug}`
2. Confirm portrait + landscape preview; note composite descriptor (reuse vs new upload)
3. Apply — studio reuses existing composite + Media entry when matched
4. `preview urls` → `diff` → `save` → `task-publish-handoff`

## Confirmation gates

1. Before upload, report search results — if another article already has the composite, copy its media + asset IDs
2. After linking batch articles, confirm all share the **same** media entry ID for `visuals[0]`

## Out of scope

- Publications poster/download flow — `publications-pages`
- Raw iStock upload without branded composite