Memory That Lasts · internal reference · compiled 2026-08-02 · read-only

MEMORY THAT LASTS — MASTER CONTEXT REFERENCE

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.


⚡ TOP-LINE LOCKED RULES (never break)


1) LOCKED RULES / DECISIONS (verbatim where load-bearing)

Source: CLAUDE.md, LOCKED-RULES.md, LOCKED-PRICES-2026-06-24.md.

Brand copy / material (FTC)

Finish / variant labels (LOCKED 2026-07-19)

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

Pricing (LOCKED)

SEO / keyword (LOCKED)

Compliance / workflow


2) MASTER SHEET STRUCTURE

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.

01 MASTER - Title-Tags-Listing (gid 1230073782 · 88 products) — LISTING SOURCE OF TRUTH

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

📋 10 · Product Listings (gid 370544822) — CROSS-PLATFORM SYNC TABLE

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.

⚠️ BG is ambiguous across tabs: 01 MASTER!BG = Printify COGS; 📋10!BG = Etsy retail. Always name the tab.

📚 05 · Printify Info BANK (gid 722404024) — PRODUCT-TRUTH SPINE (12 base blanks)

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.

Other key tabs

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


3) INTEGRATIONS / CONNECTORS (status + exact access pattern)

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.envSHOPIFY_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.envETSY_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.envPRINTIFY_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.envCLOUDFLARE_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).
Pinterest traffic engine (planned) 🟡 read-only (needs Standard tier for writes) .pinterest.envPINTEREST_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.envPHOTOROOM_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.jsonmtl-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.envOPENAI_SERVICE_KEY=sk-svcacct-…. No org header (project-scoped key 401s with org header).
OpenRouter / Seedance Etsy square videos ✅ key present open_router_api.txtopen_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.


4) CLOUDINARY ASSET INVENTORY (cloud 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.

4a. VIDEOS (all MTL clips — 27 MTL + 1 real footage; 4 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-reuse and the birth-flower -1080 finals + the real cat-paw .mov are production-ready. Everything in mtl/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.

4b. IMAGES (named/curated set — page 1 of 200, newest first; ~990 more are untagged 300×300 thumbnails)

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.

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


5) DISPATCH RECONCILE (deduped done / in-flight / needs-Kayla / dropped)

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.

❗ Dropped / stalled — re-verify

🔵 Needs Kayla (blocked on her click / decision / upload)

⏳ In-flight (Claude — DEV-first or executable now)

✅ Recently done (do not re-surface)


6) FILE INDEX (key ops docs — root …/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.


7) QUICK-REFERENCE IDs


Two flags for the orchestrator

  1. Column E ≠ Canva links. On this sheet E = a 300-char snippet; Canva links are 01 MASTER AX/AY (or 📋10 P/S). This corrects the standing instruction.
  2. Etsy state is "unverified" from automated sessions — the Etsy toolkit wasn't reachable during the source audits. Re-check the two live title bugs (4510848456, 4521776828) and the $52→$49 paw price directly via the Etsy API before marking them done.

Read-only compile. Nothing in the Ops folder, the live stores, or any API was modified. No paid generation was run.