← back to AbramsEgo

build-queue/done/52-affiliate-draft-and-kits.md

38 lines

# AbramsEgo task 52 — DRAFT registry entries + one-click join kits + activation memo — TK-10132

Depends on task 51's `data/affiliate-selection.json`. If missing/empty, do nothing and exit 0.

Turn the cabinet's selection into ready-to-activate registry entries + a single approval memo.
Read data/affiliates.json first and preserve the existing 6 seed entries — APPEND, never replace.

1. For each `selected` vendor, append an entry to `data/affiliates.json` with:
   { slug, label, url (the vendor's plain product page for now), program, category,
     commission, cookie_days, note, added:"<today>", "status":"draft" }
   The `note` MUST carry the verified commission + cookie window so it shows on the dashboard.
   HARD: every new entry is status:"draft". NEVER write status:"active" — activation is Steve's
   switch after he actually joins the program (identity/account step).

2. Write per-vendor ONE-CLICK JOIN KITS to `data/affiliate-join-kits.md` — for each vendor:
   - the exact JOIN URL
   - the 3-5 steps to join
   - EXACTLY where, once approved, Steve pastes his real tracking/affiliate URL back into
     data/affiliates.json (the `url` field) and flips `status` to `active` — so the /go/<slug>
     redirect then carries his real link.

3. Write ONE consolidated approval memo to
   ~/.claude/yolo-queue/pending-approval/affiliate-activation-TK-10132.md :
   - table of the N proposed vendors (commission, cookie, approval type, join URL)
   - the cabinet rationale + the contrarian dissent from task 51
   - an officer (vp-abramsego) APPROVE / REVISE / BLOCK block
   - explicit note: activating = Steve joins each program + pastes tracking URL + flips active;
     no money/identity action was taken autonomously.

RAILS: no signups, no active flips, no ads-engine/AD_NETWORK_PUB_ID changes, no deploy, no push.

4. VERIFY: `pm2 restart abramsego`; for one new slug, `curl -s -o /dev/null -w "%{http_code}"
   -u admin:'DW2024!' http://127.0.0.1:9773/go/<slug>` returns 302 and a row appends to
   data/affiliate-clicks.jsonl. Confirm GET /api/affiliates lists the new drafts and the
   affiliate engine pill is STILL "gated" (0 active). Commit
   `feat(affiliate): draft high-commission vendors + join kits; activation gated (TK-10132)`.
   Print the new draft count + the pending-approval memo path.