Files
session-history/ecomm/0001/SESSION-0001.0-TRANSCRIPT-2026-05-30.md
T

8.8 KiB
Raw Blame History

SESSION-0001.0 — ecomm bootstrap

Date: 2026-05-30 Driver: Ben Stull + Claude (Opus 4.8) Repos touched: wiggleverse-ecomm-meta, wiggleverse-ecomm, wiggleverse-ecomm-flotilla, wiggleverse-ecomm-prototype, engineering (local edit, uncommitted)

Honesty note on this artifact. This is a session record authored by the assistant from the conversation — faithful and uncurated as to decisions, sequence, and wrong turns, but not the raw byte-for-byte transcript. OHM publishes raw transcripts via ohm-infra's publish-transcript.sh; ecomm has no such tooling yet. Building a transcript-dump path is a future roadmap item. Until then, records like this stand in — labeled as what they are.


Purpose

First session of the ecomm project — the first software built on the OHM RFCs. Goal was framing and bootstrap, not building the app: align on the framework, capture the business context, and get the RFC-consumption flow + repos set up. Per Ben: "don't worry about exactly what will be built yet."

What happened, in order

  1. Framework alignment. Read the canonical sources before answering: engineering/README.md (the wiggleverse pattern), ohm-rfc/RFC-0001 (Human), ohm-rfc/CONTRIBUTING.md (RFC process), and crucially ohm-rfc/OPERATIONAL-MODEL.md (concept vs operational RFCs; the gate; "consume OHM as contracts"). Surfaced three forking questions.

  2. Three framework decisions (settled):

    • Everything becomes an OHM RFC — every load-bearing concept, human and commerce (Product, Order, Cart, Payment), lands in ohm-rfc, defined in relation to the Human it serves. Conscious tension noted: this broadens OHM past its strictly-"Open Human Model" self-description (RFC-0001/README) — flagged for an explicit corpus note later.
    • Prototype-first (guide §2) — throwaway vibe-code → SPEC.md from it; binding code inherits nothing.
    • New standalone product — own framework repo + own flotilla; consumes OHM RFCs as contracts; shares no code with rfc-app.
  3. Created the bootstrap ROADMAP (Waves 05: bootstrap → prototype → concept RFCs → spec → build → operate), in OHM's roadmap texture, with a next-session brief.

  4. Business context (Hasan & Connie). ecomm is a multi-tenant Shopify alternative (online storefronts + in-person POS). This resolved the biggest open shape question — multi-tenant platform, not per-customer deployments. Hasan: 3D printing + laser/wood maker goods. Connie: miniatures, large Facebook-group following, B&M industry in crisis. Revenue: implementation/maintenance via Ben's consultancy "Ben bets on us" (hourly, not platform code); no referral/markup/ad revenue; the "breakage"/prepaid-balance mechanic funds the platform ethically.

  5. Payment Strategy doc received & integrated (load-rail-policy_7.mdspecs/Payment Strategy.md). This materially sharpened and corrected the model:

    • Wrong turn corrected: earlier we (Ben + assistant) both said balances "earn interest" for customers. The doc is explicit — the platform earns yield on safeguarded float, and you cannot pay holders interest or lend the float. The customer reward is a discount at spend, funded by avoided card fees + float yield + breakage. Roadmap + memory fixed.
    • Legal gate elevated: the cross-owner "platform credit" tier is open-loop = money transmission (trigger is common ownership, not cash-out). Needs a licensed program-manager/BIN sponsor and attorney sign-off before building. Captured as a hard pre-build gate. The closed-loop single-owner "shop gift card" tier is the light regime. Channel rule ("release only on settled funds") tied to the POS requirement.
  6. Repos configured. Scaffolded four repos under ecomm/git/, moved the roadmap + renamed the payment spec into -meta, added a "standard repo set" table to engineering/README.md §5, initial-committed each, and pushed to Gitea:

    • wiggleverse/wiggleverse-ecomm-meta — roadmap, specs, sessions, docs
    • wiggleverse/wiggleverse-ecomm — implementation placeholder
    • wiggleverse/wiggleverse-ecomm-flotilla — operator-CLI stub
    • ben.stull/wiggleverse-ecomm-prototype — throwaway
    • Wrong turn: the assistant tried to ask remote-namespace + transcript questions via a structured prompt; Ben interrupted/rejected it and simply pasted the four created remote URLs — literal wiggleverse-ecomm-* names, prototype under ben.stull/. Faster.
    • Identified there's no tea/gh CLI on the machine, so remote creation was Ben's (operator) gesture; the assistant only wired origin + pushed (HTTPS creds were cached).

Decisions citable later

  • OHM = single dictionary for all concepts (human + commerce). [framework #1]
  • Prototype-first; standalone product. [framework #2, #3]
  • Multi-tenant platform; Hasan & Connie are merchants #1 and #2.
  • Float yield ≠ holder interest; reward is discount-at-spend. [Payment Strategy §5]
  • Platform-credit tier = money transmission → attorney gate before build.
  • Standard repo set documented in engineering guide §5.

Open / carried forward

  • engineering/README.md §5 edit is uncommitted — left for Ben to land (branch+PR per the guide's own rule) or handle in the engineering repo.
  • Pending input: the broader payments / business-model walkthrough (the ethics/economics doc is in hand).
  • Transcript tooling for ecomm (a publish-transcript-equivalent) is not built; records are hand-authored for now.
  • OHM self-description broadening wants an explicit corpus note/RFC.

Next session

Wave 1 — vibe-code the throwaway prototype in wiggleverse-ecomm-prototype. The kickoff prompt below was handed to Ben in chat at session close (per engineering guide §6 — next-session prompt delivered before publishing).

This is Session 2 of the ecomm project — Wave 1: vibe-code the throwaway prototype.
ecomm is the first software built on the OHM RFCs, following the wiggleverse
engineering pattern. Don't build the "real" software this session — this is
discovery.

READ FIRST (in this order):
- Your memory for this project (ecomm-business-context, ecomm-framework-decisions,
  wiggleverse-engineering-pattern).
- ~/projects/wiggleverse/ecomm/git/wiggleverse-ecomm-meta/ROADMAP.md — especially
  the "Operating instructions for the next session" block at the bottom, and the
  "Payments & credits model" section.
- ~/projects/wiggleverse/ecomm/git/wiggleverse-ecomm-meta/specs/Payment Strategy.md
- ~/projects/wiggleverse/ecomm/git/wiggleverse-ecomm-meta/sessions/SESSION-0001.0-TRANSCRIPT-2026-05-30.md
- ~/projects/wiggleverse/engineering/README.md §2 (prototype-first) and
  ~/projects/wiggleverse/ohm-rfc/OPERATIONAL-MODEL.md (concept→operational RFCs).

TASK: Build a throwaway, vibe-coded prototype of the ecomm platform in the
wiggleverse-ecomm-prototype repo (~/projects/wiggleverse/ecomm/git/wiggleverse-ecomm-prototype).
ecomm is a multi-tenant Shopify alternative: merchants run online storefronts AND
take in-person payment (it replaces their POS register).

DRIVE IT WITH REAL SCENARIOS:
- Hasan — 3D printing + laser cutting/engraving on wood (physical maker goods).
- Connie — miniatures / dollhouse items / knick-knacks; big Facebook-group following.
- The in-person POS flow (a sale at a trade show / in the shared shop).

CONSTRAINTS (this is a prototype, not the product):
- Super wobbly. No spec, no tests, no deploy discipline, no engineering standards.
- Runs locally or on a tiny disposable VM we tear down. Nothing is operated or kept.
- FAKE the credits/load/spend UX freely — mock money, no real ACH, no KYC, no
  licensing. BUT keep two things visible because they drive the real design:
  (1) the two-tier credit structure (platform credit vs. shop gift card), and
  (2) the channel rule "release value only on funds confirmed settled in your own
  account" (in person: refresh YOUR app, never the customer's screen).
- Do NOT write into the real implementation repo (wiggleverse-ecomm), do NOT deploy,
  do NOT touch real money or real customer data.

GOAL: Discover the shape — data model, the hard parts, what feels right. Collect the
load-bearing concepts you surface (Merchant, Storefront, Product, Cart, Order,
Payment, Credit/Balance, etc.) toward a concept inventory for Wave 2 — but do NOT
halt the vibe-code to author RFCs (that's a later wave). Build more than one framing
if the shape is unclear.

DONE WHEN: we can describe the system as contracts and invariants rather than "watch
it run" — that's the signal to stop prototyping and move to SPEC.md (Wave 3). End the
session by listing the concepts that surfaced and any shape questions for the spec.

Session 1 closed here.