Compiled 2026-08-02 · READ-ONLY inventory · the single source future tasks read first
Store: memorythatlasts.com (Shopify, Horizon theme) + Etsy shop "MemoryThatLasts" (shop id 62435306). Both LIVE/public since 2026-07-29. Solo anonymous founder (Kayla). Personalized engraved jewelry, US-first, mobile-first, fulfilled via Printify (never named publicly).
How to use this doc: This is the authoritative context + asset + integrations reference. Read it before starting any MTL task so you don't re-explain context or regenerate an asset that already exists. Ground every action in this doc + the live state, not stale memory. Sections: (1) Locked Rules, (2) Master Sheet, (3) Integrations, (4) Cloudinary Assets, (5) Dispatch Reconcile, (6) File Index, (7) Quick-Ref IDs.
Source: CLAUDE.md, LOCKED-RULES.md, LOCKED-PRICES-2026-06-24.md.
Exact customer-facing "Finish" values (mind dashes — en-dash on Gold/Rose, hyphen on Stainless): - Gold – 18K PVD - Rose Gold – 18K PVD - Stainless Steel - 316L Surgical Grade
Order always Gold → Rose Gold → Stainless. Max 3 finishes. NEVER Black or Rainbow PVD. NEVER "silver". Source of truth = master sheet tab 01 MASTER col BD ("Variant Options and language") — always re-read that cell, never reuse a remembered string. Exceptions: Break-Apart = Gold + Stainless only (no Rose); Cat/Dog Hidden Bar = two-tone ("Stainless Steel Outside - 18K Gold Inside" + reversed "Gold Outside, Stainless Steel Inside" added 2026-07-26); signet rings = Size-only (no Finish).
memory/RULE-erank-filter-method.md — USA filter → seed the line's own term → sort competition ascending → keep ≥500 vol / ≤3k comp / KD ≤20 we can fulfill → log Vol·Comp·KD with date. (eRank has NO public API — data is cached in the sheet's Superstar Keyword Tracker tab.)MerchantReturnNotPermitted). Pre-engraved (zodiac coins/rings, zodiac-cutout-bar, birth-flower, Cat Mom, Dog Mom) = 30-day FreeReturn. Driven by template.suffix (char_limit > 0 = personalized). As of 2026-08-02, MerchantReturnPolicy applicableCountry extended US→[US,CA].cd cloudflare-worker/ && wrangler deploy — NEVER the dashboard Quick Edit editor (sandbox iframe rejects automation).themePublish.bytedance/seedance-2.0, NOT Kittl. Read memory/RUNBOOK-seedance-etsy-square-videos.md first. Non-negotiables: reference image as first_frame ONLY; duration 6s (Etsy 5–15s, 4s fails); 1080p finals / 720p tests; continuous motion; ONE generation per iteration; Kayla approves every clip.Sheet: "Shopify + Etsy Product Listings", ID 1ERMCbs9mMCH3duaHBd_L2pvEFynUy0Q6RTlK_tOzZUo. 44 tabs (5 visible, 39 hidden), 88-product catalog. Accessed READ-ONLY via the mtl-automation Google service account (spreadsheets.readonly). Canonical maps: MASTER-SHEET-DATA-MAP-2026-07-11.md + SHEET-INTELLIGENCE-MAP-2026-07-11.md.
On the 01 MASTER tab, E = Snippet (first 300 char), F = Snippet keywords. Canva links actually live in:
- 01 MASTER: AX = Etsy Canva, AY = Shopify Canva (2 links per product).
- 📋 10 · Product Listings: P = Shopify Canva, S = Etsy Canva, Q = Kittl.
Use those cells for Canva mockup links — not column E.
A Product · B Status · D FINAL TITLE · E Snippet(300ch) · F Snippet keywords · I Etsy Editing link · J Shopify link · L Etsy Listing ID · M Tag Count · N Recommended Title · O–S recommended/all tags + feedback · AU/AV Kittl 1/2 · AW mockups-ready flag · AX/AY Canva Etsy/Shopify · BB Printify Column Audit · BC Printify link · BD Variant Options & language (LOCKED finish-label source cell) · BE Pendant Size/Dimensions · BF Printify Key Features · BG Printify PREMIUM PRICE (COGS) · BH Return Policy copy · BI Top-1% Audit Notes. (Seedance prompts pull pendant dims from cols AB:AG.)
B Product · C Final Title · D/E/F eRank/Superstar/secondary kw · G Etsy link · H Etsy Title · I Etsy Tags · K Description (plain) · M Shopify Title · N Shopify link · P Shopify Canva · Q Kittl · S Etsy Canva · U Shopify Product ID · V Etsy Product ID · X/Y/Z Evlista/Vela/eRank grades (X&Y mostly blank) · AB Etsy Tag Count · AF Printify Catalog link · AG Shopify Status · AI/AJ Shopify Price Min/Max · AR Jewelry Material · BA Shopify Handle · BF Mockup Status · BG Etsy Price · BH/BI alt text hero / 3-finishes.
⚠️
BGis ambiguous across tabs: 01 MASTER!BG = Printify COGS; 📋10!BG = Etsy retail. Always name the tab.
A Product Type · B About · C eRank kw · D Printify link · E FINISH OPTIONS (PVD canonical strings) · F Size/Dims · G Key Features/Material · H Printify PREMIUM PRICE ($11.67–$17.08 COGS) · I count + personalization/char hints.
📚 04 Superstar Keyword Tracker (gid 2010564747, ~3,218 kw: VOL=B, COMP=E, KD=F, Google=G, Superstar=L) · ALT-TEXT MASTER (gid 1865548898, 306 rows: alt=K, count=L, finish=J) · 📋11 Listing Tracker (1238524904) · 📋12 Etsy Ads Tracker (1616078587) · 📋13 Alt Text Tracker (1974954869) · 📋14 Products For Future (743324717) · 📥03 eRank Results (401849374) · 📚06 KW Bank by Category (1294645848) · 📚07 eRank KW Bank (442010002) · 📚08 KW Hole Finder (1354483630) · ✅31 PULL-LIST (1472856987) · 🧾29 Agent Activity Log (933001262) · 📖30 Agent Directions "read first" (1109811203) · Branvas Products (543451644, ~78 items, idle) · SANDBOX tabs (01 MASTER — SANDBOX 312420021, ALT-TEXT SANDBOX 1493939614 — NOT live).
⚠️ Gap: no structured column for engraving char-limit / template-suffix / Printify layer-name — only free-text hints in 📚05!I.
Env files live in the Ops root …/MemoryThatLasts-Ops-UPDATED/ unless noted. Scripts read from the env file by key name — never hardcode. Secrets below are redacted; the real values are in the env files.
| Tool | For | Status | Access pattern |
|---|---|---|---|
| Shopify Admin | live store, theme, products | ✅ connected | .shopify.env → SHOPIFY_ADMIN_TOKEN=shpat_…. Host qxjxh9-1t.myshopify.com (NOT custom domain). Live/MAIN theme 159127928981; DEV = duplicate the live theme. MCP mcp__5cec027a-…__* (blocks live-theme writes + themePublish). Printify shop 26584112. |
| Etsy Open API v3 | listings, tags, price | ✅ working (app memory-that-lasts-shop-manager) — ⚠️ unverified this session |
.etsy-oauth.env → ETSY_KEYSTRING, ETSY_SHARED_SECRET, ETSY_SHOP_ID=62435306, ETSY_ACCESS_TOKEN, ETSY_REFRESH_TOKEN. x-api-key header = KEYSTRING:SHARED_SECRET colon-joined; Authorization: Bearer <access_token>. Write via PATCH openapi.etsy.com/v3/application/shops/62435306/listings/{id}. Limits 10 QPS / 10,000 QPD. Doc: MTL-ETSY-API-STATUS-2026-08-01.md. Banned apps: memory-that-lasts-storefront, mtl-internal-tools. |
| Etsy token auto-refresh | keeps token live | ✅ running | LaunchAgent com.mtl.etsy-token-refresh (every 30 min). RUNTIME copy is LOCAL not iCloud: script ~/Library/Application Support/MTL-Etsy/etsy_refresh_token.py, token ~/Library/Application Support/MTL-Etsy/.etsy-oauth.env, logs ~/Library/Logs/mtl-etsy-token-refresh*.log. The "zsh — unidentified developer" login item IS this job (benign). |
| Printify | fulfillment (never public) | ✅ connected | .printify.env → PRINTIFY_API_TOKEN=eyJ0… (JWT, exp ~2027-06). User sub 24906809. Shops 26584112 (Shopify), 27493025 (Etsy). Base api.printify.com/v1/. Auto-sync to stores stays OFF. |
| Cloudflare | Worker + Pages hosting | ✅ connected | .cloudflare.env → CLOUDFLARE_ACCOUNT_ID=4cbc7fdd85152061dee2e16b59d23d3c, CLOUDFLARE_API_TOKEN=cfut_… (Pages:Edit + Workers Scripts:Edit; token verified active 2026-08-02). Worker mtl-personalize @ mtl-personalize.steep-lab-a49a.workers.dev (/personalize /health /webhooks/*), KV LOG_KV id fa8876449f8c4966be07d3e2e1f5c955. Deploy: cd cloudflare-worker/ && wrangler deploy. Pages projects: mtl-snippets, mtl-shopify-videos, mtl-tile-picks, mtl-etsy-about-draft, mtl-video-review, mtl-snippets-batch1/rows-2-17/rows-23-34, mtl-master-context (this doc). |
| traffic engine (planned) | 🟡 read-only (needs Standard tier for writes) | .pinterest.env → PINTEREST_APP_ID=1565734, PINTEREST_APP_SECRET=… (rotated 2026-06-01), PINTEREST_ACCESS_TOKEN=pina_… (Trial tier, read-only, 24h expiry — likely stale). pins:write needs Standard tier; until then pin work is browser-driven. Pinterest tag 2613382964181. Merchant verification is the key unlock (open loop O11). |
|
| Tailwind / PinGenerator | Pinterest scheduling/pins | manual/browser | No env file. Pin work is manual via Playwright/Chrome MCP (memory/PLAYWRIGHT-PINTEREST-RUNBOOK.md). |
| Kittl | mockups (Kayla) | manual, no API | Kittl AI → Canva → stores. Canva MCP available (mcp__33f39d67-…__*, needs auth). |
| Cloudinary | video/image asset host | ✅ connected (⚠️ two accounts) | MCP mcp__Cloudinary_Asset_Management__*. Operational cloud dl7mguxyk. Second account dafx1ucr4 in CLOUDINARY_URL.STALE.txt (STALE — optional consolidation). Plan = Free, 25 credit/mo, 3.52 used (14%) as of 2026-08-01. |
| Klaviyo | email/popup | ✅ active | MCP mcp__0c2cec1d-…__* (also listed as connector needing OAuth). Evergreen popup form id TiJ8av (15s / 30% scroll / exit intent). |
| Vela | Etsy bulk TEXT | browser (monitor-only) | Titles/tags/desc, one tag per action (char-shift corruption risk). Evlista = Optional Attributes dropdowns only. |
| Photoroom | bg-remove / edit | ✅ connected | .photoroom.env → PHOTOROOM_API_KEY_LIVE, _SANDBOX. Header x-api-key. BG-remove sdk.photoroom.com/v1/segment; edit image-api.photoroom.com/v2/edit. |
| Google (Sheets SA + Merchant/YouTube + PSI) | sheet writes, feed, speed | ✅ | Sheets SA .google-sa-key.json → mtl-automation@november-2025-479204.iam.gserviceaccount.com (READ-ONLY spreadsheets.readonly; preserves newlines — use for sheet writes vs gviz/CSV). PSI key .psi.env. Google & YouTube app auto-syncs shipping to Merchant Center; Aug 18 Content→Merchant API migration is app-auto-handled (do NOT uninstall/reinstall). IndexNow key .indexnow.key. |
| OpenAI | copy/vision (service key) | ✅ | .openai.env → OPENAI_SERVICE_KEY=sk-svcacct-…. No org header (project-scoped key 401s with org header). |
| OpenRouter / Seedance | Etsy square videos | ✅ key present | open_router_api.txt → open_router_api: sk-or-v1-…. Auth Bearer <key>, openrouter.ai/api/v1/chat/completions, model bytedance/seedance-2.0. Remaining balance: NOT recorded in ops docs (only the key is stored; approved exemplar clip cost $2.04). Check balance live via GET openrouter.ai/api/v1/credits with the key before batch video work. |
| eRank | keyword research | no API | .erank.env = stub. Data cached in the sheet's Superstar Keyword Tracker tab. |
Analytics pixels (shopify/snippets/mtl-tracking-pixels.liquid): Pinterest tag 2613382964181, Meta Pixel 1024286871919548, GA4 G-6YKMTMN0FD.
Chrome MCP browsers: pink 484d93e8, indigo 10e9371d, big-computer 0dcee6e1 (extension sleeps when window unfocused).
Needs-auth MCP connectors (authorize in claude.ai connector settings before use): Klaviyo, Canva, Shopify, and others surface as OAuth-required in non-interactive sessions.
dl7mguxyk)GOAL: don't regenerate what already exists. Usage 2026-08-01: 1,243 resources, 2,358 derived, 3.52/25 credits used (14%). 1,190 images + 32 videos total.
samples/* are Cloudinary demos, ignore)Pet / Paw — hidden-bar reveal
- mtl/video-tests/dog-paw-daphne-reveal-v3 (960², 08-02, tags daphne,dog-hidden-bar,draft,stainless-outside) ← newest dog paw
- mtl/video-tests/dog-paw-daphne-reveal-v2 (960², 08-02)
- mtl/video-tests/dog-paw-hidden-bar-reveal-v1 (960², 08-02)
- mtl/video-previews/cat-paw-hidden-bar-reveal-real (.mov, 720×1280, 07-26, real-footage — the one non-AI clip)
- daphne_reveal_silverup_seedance2 (960², root, 07-26)
- daphne_reveal_seedance2 (960², root, 07-25)
Zodiac coin
- leo-coin-necklace-reuse (960², root, 08-02, tags leo-coin,mtl-video-reuse) ← flagged as a reusable final
- mtl/video-tests/aries-coin-ugc-tryon-v1 (720×1280, 07-26)
- mtl/video-tests/kittl-faceless-tryon-benchmark-aries-coin (720×1280, 07-26, kittl-benchmark)
Birth-flower heart necklace (June/July/Oct/Nov — heavy iteration, -1080 = finals)
- october-birth-flower-heart-lifestyle-v4-1080 (1440², root, 07-27) · october-birth-flower-heart-lifestyle-v3 (960², root)
- mtl/video-tests/july-birth-flower-heart-lifestyle-v1 (1440², 07-28) · mtl/video-tests/november-birth-flower-heart-lifestyle-v1 (1440², 07-28)
- november-birth-flower-heart-necklace-regen-v2-1080 · october-birth-flower-heart-necklace-regen-v2-1080 · july-birth-flower-heart-necklace-regen-v1-1080 (all 1080², root, 07-27) ← finals
- mtl/video-tests/november-birth-flower-heart-necklace-regen-v2 · …-regen-v1 · october-…-regen-v2 · …-regen-v1 · july-…-regen-v1 (all 1440², 07-27)
- mtl/video-tests/june-rose-bar-slowfix-demo-5.3s (960², 07-26)
- mtl/video-tests/june-flower-heart-seedance-test / -v2 / -v3 / -v4 / -v5 (960²–1440², 07-26) — 5 test iterations
Video reuse note: Only
leo-coin-necklace-reuseand the birth-flower-1080finals + the real cat-paw.movare production-ready. Everything inmtl/video-tests/is iteration/test — reuse a final before generating anything new. 0/88 Etsy listings currently have a video attached (open loop) — attach existing clips before making new ones.
Folders: (root) hand-named source/tile assets + Shopify-CDN URL refs + auto thumbnails; mtl/mockups (24, well-tagged product mockups); mtl/video-tests (Seedance reference frames). Naming: mtl-<type>-<subject>-<descriptor>; mockups <subject>-hidden-bar-NN.
mtl-src-taurus-coin, mtl-src-pisces-bar, mtl-zodiac-leo-coin-tile, mtl-zodiac-leo-card-tile, mtl-zodiac-trio-tile, aries-coin-flatlay-ref (+ dup in video-tests). Full 12-sign flatlays exist as Shopify-CDN URL public_ids (aquarius/aries/cancer/capricorn/gemini/leo/libra/pisces/sagittarius/scorpio/taurus/virgo).mtl-src-libra-ring (only true ring asset on page 1).mtl-birth-flower-daisy-heart-tile + Seedance refs june/july/october/november-…-heart-necklace-ref.mtl-pet-catpaw-slider-tile, mtl-petname-gold-worn-pillv2, mtl-petname-stainless-worn-pillv2, mtl-petname-gold-scale-pillv2, mtl/mockups/dog-paw-hidden-bar-gold-outside (+-v2), mtl/mockups/paw-hidden-bar-both-finishes-a/-b, reveal frames dog-paw-reveal-closed-first/-open-last.mtl/mockups/cat-hidden-bar-01…10 + -livepreview-base (11), mtl/mockups/dog-hidden-bar-01…08 + -livepreview-base (9), daphne_silverup_reveal_last.mtl-names-initials-am-heart-tile, MTL-names-initial-AM-tile, klaviyo-popup-initial-heart-worn-gold-2026-07-05.mtl-memorial-souldog-tile, mtl-shopall-collage-tile, mtl-shopall-three-finish-tile, mtl-pin-src-oct-marigold (+-lifestyle), october-lifestyle-ref, daphne reveal frames (root + video-tests).Flagged duplicates / cleanup candidates:
1. aries-coin-flatlay-ref exists at both root and mtl/video-tests/.
2. dog-paw-hidden-bar-gold-outside vs -v2 (same finish/dims).
3. Daphne reveal set fragmented across root + video-tests with underscore-vs-hyphen naming + v2/v3/v4 churn.
4. mtl-names-initials-am-heart-tile vs MTL-names-initial-AM-tile (same subject, different casing/dims).
5. ~129+ untagged 300×300 hash PNGs (root, no metadata) — programmatic thumbnails/glyphs; audit for cleanup. (Full paging past page 1 was skipped to stay credit-safe; the remaining ~990 images are overwhelmingly these thumbnails.)
Naming inconsistency to fix over time: mixed casing (MTL- vs mtl-), mixed separators (_ vs -), and full Shopify-CDN URLs stored as public_ids alongside native uploads (zodiac line lives as external CDN refs, everything else native).
Sources: MTL-OPEN-LOOPS-2026-08-02.md, MTL-TODO-AND-PLAN-2026-08-01.md, latest SESSION-LOG.md. Grounding: ~1 real sale total (Shopify #1024 $37.21 Jul 24). Both channels live, 88 listings each. Strategic priority: fix Etsy title bugs + ship filters this week; clear Pinterest merchant verification (O11) to make Pinterest the traffic engine.
/collections/personalized-necklaces "Shop Personalized" (08-01); headline unchanged.sections/mtl-reviews.liquid).…/MemoryThatLasts-Ops-UPDATED/)Governance/rules: CLAUDE.md (master rules/deploy runbooks — Etsy section superseded by ETSY-API-WORKING) · LOCKED-RULES.md · AGENTS.md · CLAUDE.md.archive-2026-05-20 · DEPLOY.md + cloudflare-worker/DEPLOY.md.
Status/loops/plan: MTL-OPEN-LOOPS-2026-08-02.md ⭐ · MTL-TODO-AND-PLAN-2026-08-01.md ⭐ · SESSION-LOG.md (7,364 lines, newest top) · TASKS.md · MTL-STATUS-REPORT-2026-07-29.md · MTL-COMPLIANCE-AUDIT-2026-08-02.md · MTL-ALT-TEXT-STATUS-2026-08-02.md · MTL-VIDEO-COVERAGE-REVERIFY-2026-08-02.md · MTL-OPS-STATE.json.
Sheet maps: MASTER-SHEET-DATA-MAP-2026-07-11.md ⭐ · SHEET-INTELLIGENCE-MAP-2026-07-11.md ⭐ · GOOGLE-SHEET-AUDIT-2026-06-23.md · FULL-SHEETS-AUDIT-2026-06-29.md.
Integrations/creds (env in root): .shopify.env · .etsy-oauth.env · .printify.env · .cloudflare.env · .pinterest.env · .photoroom.env · .openai.env · .psi.env · .erank.env (stub) · .google-sa-key.json · .indexnow.key · open_router_api.txt · CLOUDINARY_URL.STALE.txt · .secrets-archive/. Playbooks: ETSY-API-WORKING-2026-07-27.md · MTL-ETSY-API-STATUS-2026-08-01.md · LOCKED-PRICES-2026-06-24.md · memory/RUNBOOK-seedance-etsy-square-videos.md · memory/RULE-erank-filter-method.md · memory/ERANK-API-REFERENCE.md · memory/PLAYWRIGHT-PINTEREST-RUNBOOK.md · cloudflare-worker/mtl-personalize-worker.js.
qxjxh9-1t.myshopify.com, live theme 159127928981mtl-personalize, KV fa8876449f8c4966be07d3e2e1f5c9551ERMCbs9mMCH3duaHBd_L2pvEFynUy0Q6RTlK_tOzZUo (01 MASTER gid 1230073782 · 📋10 gid 370544822 · 📚05 gid 722404024)dl7mguxykAX/AY (or 📋10 P/S). This corrects the standing instruction.Read-only compile. Nothing in the Ops folder, the live stores, or any API was modified. No paid generation was run.