← 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