etsy-listing-kit

IN BUILD

"One design file, all the Etsy listing assets — built for embroidery sellers." — BHD Labs README (Etsy Patternator line); full context in [`experiments/etsy-listing-kit/docs/intent.md`](../../../experiments/etsy-listing-kit/docs/intent.md)

STAGES

  1. proposal07-25
  2. requirements07-25 ↻ 07-30
  3. design07-25
  4. tasks07-25
  5. build—
  6. archived—

CAPABILITIES — 2 IN ONE CHANGE

  • paid-asset-pack4 requirements
  • revenue-target-test1 requirement

OUTCOMES — AND HOW EACH IS MEASURED

  • ✓1.1User can upload a valid PNG/JPG/SVG and see it accepted with a thumbnail *(Upload · valid file)* — verified live walkthrough 2026-07-27; UX bug on submit scroll tracked in #336not stated
  • ○1.2User gets a clear, non-technical error on an unsupported/oversized file — no order created *(Upload · bad file)*not stated
  • ✓1.3User sees a watermarked preview of all 6 curated images with price + what they get *(Preview the pack)* — verified live 2026-07-27; layout/crop feedback open in #335/#330 (partly addressed by #337 restyle, re-verify). Preview-reveal feedback (scroll/focus/announce, #336) added by change `elk-preview-feedback` 2026-07-30 — include in the next production walkthrough (5.4)not stated
  • ✓1.4User completes a one-time $3 Stripe payment (test mode) and lands on a success URL tied to their order *(Complete payment)* — verified stronger than spec: **live** $3 payment 2026-07-27 (order `0484a635-a662`, `pi_3TxrgUKdCjejJ0FM…`), success URL tied to ordernot stated
  • ○1.5User who cancels checkout returns to the preview with upload intact and no charge *(Cancel payment)*not stated
  • ✓1.6A signature-valid `checkout.session.completed` marks the order paid, builds the un-watermarked zip, exposes a signed download, sends one email *(Webhook fulfils once)* — live receipt 2026-07-27: paid 16:47:28Z → fulfilled 16:47:34Z, event id + output stored (elk_orders row `0484a635`), but `email_message_id` null (`RESEND_API_KEY` landed in Vercel after that deploy). **CLOSED 2026-08-08 on live data:** every order from 2026-08-03 onward carries a real `email_message_id` with `email_error` null (`3eeb0ffb`, `18b148bd`, `3f241132`, `83e5087d`) — the email half is verified in production, all 6 lifetime orders fulfilled, 0 refundsnot stated
  • ○1.7A duplicated Stripe event/session does not double-fulfil, double-email, or double-count *(Duplicate webhook)*not stated
  • ○1.8A paid buyer can re-open their signed link and re-download within 7 days, no account *(Retrieve later)*not stated
  • ○1.9`pnpm revenue:test` prints red (target/actual/gap/purchases/AOV/days/run-rate) while live revenue < $100 *(Revenue red)*not stated
  • ○1.10`revenue:test` counts only live-mode, post-launch, refund-adjusted `etsy-listing-kit` payments; green only on real attainment *(Only qualifying revenue / green on real)*not stated

WHERE THE SOURCES DISAGREE

6.3 — the change says 6.3 still expects work on #334; the record shows #334 merged on 2026-07-27.

  • a commit for #334 is on this branch, dated 2026-07-27

6.3 — the change says 6.3 still expects work on #363; the record shows #363 merged on 2026-08-07.

  • a commit for #363 is on this branch, dated 2026-08-07

6.3 — the change says 6.3 still expects work on #364; the record shows #364 merged on 2026-08-07.

  • a commit for #364 is on this branch, dated 2026-08-07

WHAT HAPPENED

  1. TASKS

    proposal and specs and design and tasks landed

    2026-07-25 · 1 pull request
    • #331feat(etsy-listing-kit): OpenSpec change + transactional foundation
  2. 5 days quiet — nothing touched this change

  3. ↺ BACK TO SPECS

    docs: truth-up etsy-listing-kit tasks.md + always-on rule to keep task lists honest

    2026-07-30 · 3 pull requests
    • #338docs: truth-up etsy-listing-kit tasks.md + always-on rule to keep task lists honest
    • #345fix(elk): scroll, focus, announce when previews land
    • #347chore(openspec): archive elk-preview-feedback + fold spec delta into parent
  4. 8 days quiet — nothing touched this change

  5. BUILD

    fix(etsy-listing-kit): repair broken Google Ads conversion tracking

    2026-08-07 · 1 pull request
    • #363fix(etsy-listing-kit): repair broken Google Ads conversion tracking
  6. BUILD

    fix(etsy-listing-kit): reset ad burst to 2026-08-08 + route back from result

    2026-08-08 · 1 pull request
    • #365fix(etsy-listing-kit): reset ad burst to 2026-08-08 + route back from result

History read from a manifest built at 2026-09-30 (09e7bcc).

6 pull requests, found by commits touching the change folder