← back to New Arrivals Content Engine
README.md
35 lines
# New-Arrivals Content Engine
Officer Idea Council 2026-07-20, **idea #3** (vp-dw-marketing). Turns the daily
"New Arrivals" SKU feed (already maintained by `com.steve.dw-new-arrivals-500`)
into staged social **drafts** — never auto-posts.
## Pipeline
1. `scripts/diff-new-arrivals.cjs` — READ-ONLY. Fetches newest-N active products
from Shopify, diffs vs yesterday's snapshot, writes `data/net-new-latest.json`
+ `data/snapshots/YYYY-MM-DD.json`. $0, idempotent, no Shopify writes.
2. `scripts/draft-social.cjs` — LOCAL. Drafts IG/TikTok/Pinterest captions for the
top net-new products (image-preferred) into `data/review-queue/*.json`,
`status:"draft"`. Captions generated locally from tag vocab — no paid API.
Room-render is an OPTIONAL $0-local hook (reels-producer) the reviewer triggers.
## Run
```
node scripts/diff-new-arrivals.cjs # read-only, safe to re-run
node scripts/draft-social.cjs --pick 5 # writes drafts only
```
## Gates (hard)
- **No posting.** Nothing here sends to any platform or schedules a live send.
Publishing an approved draft is Steve-gated (reply "go" / live session).
- Outbound social copy must carry the Wallcovering-safe / private-label-leak rules
before any publish — captions are drafted conservatively but a leak-scan +
compliance pass is required at the publish step.
- $0: Shopify Admin API reads and local caption text. Only optional room-render
(local, $0) and the gated publish stage touch anything metered/outward.
## Next (deferred, gated)
- Wire `reels-producer` render as a queued step.
- Daily launchd wrapper (`diff` → `draft`) once the first-day pool size is known.
- Review UI over `data/review-queue/` with approve → (gated) publish.