← All playbooks · Raw API

task-news-images

# Capability: News article images (composite)

## Intent phrases

- create news article images
- branded news card image
- OG image for press release
- news composite image
- update news image
- stylised image
- composite from asset

## Critical rules

1. Source = CMS asset with **SEO-sensible filename** (used in composite titles).
2. Never raw source as `featuredImage` alone for news.
3. **No site CMA.** Render on site → signed download URL → **cms-edit staged Redis** → OAuth link.
4. Host: `https://headwater-website-git-develop-se-studio.vercel.app`

## Steps

### A. Source asset

`task-media-reuse-and-upload` if needed. Prefer descriptive `fileName`.

### B. Render / reuse

```
POST …/api/cms/news-images/render
{ "sourceAssetId": "…", "slug": "…" }
```

- `reused: true` → use returned IDs; skip upload.
- `reused: false` → curl each `downloadUrl` to disk.

### C. Stage + link (fresh only)

Same media pipeline: `cms_edit_request_staged_upload` → curl → `asset upload --staged` ×2 → create media → set fields → save.

### D. Handoff

`preview urls` → `task-publish-handoff`

## Confirmation gates

1. Prefer reuse when API returns `reused: true`
2. Both fields are composites
3. Files ≤ 4 MB