migrate ecomm session transcripts into ecomm/ (folder-per-session) + manifest

This commit is contained in:
2026-06-03 07:16:50 -07:00
parent 3713299f08
commit 31ef3a3be9
12 changed files with 1814 additions and 0 deletions
@@ -0,0 +1,166 @@
# 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.*