← 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.