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

167 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.md`
`specs/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.*