# SESSION-0008.0 — Payments doc → full concept-RFC corpus, seeded live on the OHM site

**Date:** 2026-06-01
**Driver:** Ben Stull + Claude (Opus 4.8)
**Repos touched:** wiggleverse-ecomm-meta (RFC-ROADMAP + this record), ben/ohm-rfc (31 prose RFCs, pushed), wiggleverse/ohm-content (30 super-draft entries via the app + 7 withdrawals, pushed), rfc-app (read-only investigation)

> **Honesty note on this artifact.** This is a *session record* authored by
> the assistant from the conversation — faithful as to decisions, sequence,
> and wrong turns, but **not** the raw byte-for-byte transcript. ecomm still
> has no transcript-dump tooling; records like this stand in, labeled as
> what they are.

---

## Purpose

Start from the question "what OHM RFCs does the Payment Strategy doc imply?"
and end with the full ethical-commerce **concept corpus authored and live on
the OHM site**. Scope grew over the session from "the payments cluster" to
"the whole vocabulary an ethical, human-first, still-sustainable platform
needs," then to actually getting all of it onto ohm.wiggleverse.org.

## What happened, in order

1. **Mapped the payments doc to RFCs.** Split into **concept** RFCs (Stored
   Value, Informed Consent, Settlement, Load, Discount/Reward, Breakage,
   Float, Closed-vs-Open-loop) and **operational** RFCs (load-rail policy,
   settlement-hold/fraud, channel-release, discount-at-spend), each anchored
   to the Human property it serves. Wrote these into **`RFC-ROADMAP.md`** in
   the meta repo; committed + pushed. Drafted authoring prompts for Stored
   Value + Informed Consent.

2. **Broadened to the full ethical-commerce concept set.** On request, gave
   an ordered ~25-concept list (frame & actors → ethical spine →
   sustainability spine → commerce nouns → money cluster → governance), then
   stress-tested it and added the **keystone that was missing: an explicit
   optimization target ("Human Flourishing")** — the affirmative answer that
   replaces the silent "engagement," per OPERATIONAL-MODEL.md — plus Duty of
   Care/Vulnerability, Refund/Reversal, Trust & Safety, Reputation,
   No-Retroactive-Harm. Settled on **30 concept RFCs** (RFC-0002..0032 in the
   first numbering).

3. **Authored the corpus with a Workflow** (62 subagents: 31 authors + 31
   verifiers) into **`ben/ohm-rfc`** as full ~2.5k-word prose RFCs; committed,
   merged `ecomm-rfc-corpus` → `main`, pushed (`36329c0`).

4. **Wrong turn discovered: that was the wrong surface for the website.** The
   OHM site (**ohm.wiggleverse.org = the `rfc-app` product**) does **not**
   render `ben/ohm-rfc` prose. It renders from a **content repo**
   (**`wiggleverse/ohm-content`**), `rfcs/<slug>.md` + YAML frontmatter, via a
   `cached_rfcs` DB synced by webhook/reconciler. Model facts: **slug is the
   canonical id; integer `RFC-NNNN` only at graduation; bot is the only git
   writer; lifecycle = propose → admin-merge → super-draft → develop body via
   PRs → graduate (active).** So the git numbering was moot and the prose was
   in the wrong place (it's reusable later as bodies).

5. **Seeded all 30 onto the site via the app UI** (Chrome MCP, logged in as
   Ben/OWNER). Proposed each (short "why" pitch as body), then merged each
   proposal — both gestures done by Claude with Ben's standing authorization.
   **Wrong turn:** the propose dialog's slug field **strips hyphens on
   keystroke input**, so the first 7 multi-word ones landed dash-less
   (`agencyantimanipulation`, …). Switched to `form_input` (preserves dashes)
   for the rest.

6. **Re-proposed the 7 with correct slugs** (`agency-anti-manipulation`, …);
   merged them. Decided to keep the correct twins and retire the dash-less.

7. **Numbering discussion.** Confirmed the RFC number is operator-chosen at
   graduation (`_suggest_next_rfc_id` = max+1, stored in frontmatter `id`, not
   the DB row id). Decision: **slug is canonical; RFC numbers optional.**
   Drafted (did **not** run) a small rfc-app change to make graduation not
   require a number.

8. **Cleaned up the 7 dash-less duplicates.** Investigated removal: a bare
   file delete does **not** drop an entry (the reconciler keeps the
   `cached_rfcs` row; no `DELETE` path exists; the SPEC's entry-level
   `withdraw` endpoint is unimplemented). Then found the real situation — the
   7 files had **never actually been removed from `main`** (still
   `super-draft`), which is why they kept showing. Cloned
   `wiggleverse/ohm-content`, set **`state: withdrawn`** on the 7, pushed to
   `main` (`619adde`). Webhook synced immediately; verified the 7 read "This
   RFC is withdrawn" and dropped off the lists while the dashed twins stayed
   live.

## Decisions settled

- **Slug is the canonical identifier; RFC numbers are optional/deferred.**
- **`state: withdrawn` is the only working retire** in rfc-app (deletion
  leaves a stale cached row; no entry-withdraw endpoint).
- All 30 ecomm concepts live as **super-drafts**; full-body import and
  graduation are deferred to a later session.

## Wrong turns (recorded honestly)

- Authored the corpus into `ben/ohm-rfc` prose assuming it fed the site; the
  site is `wiggleverse/ohm-content`. Not wasted — the prose becomes the bodies.
- Hyphen-stripping slug bug created 7 dash-less duplicates.
- Briefly mis-theorized the dupes persisted due to the cache-keeps-row
  behavior; the actual cause was the files were never deleted from `main`.

## State at close

Live on ohm.wiggleverse.org: **30 ecomm concept RFCs** (clean hyphenated
slugs) + pre-existing `informed-consent`, all super-drafts; `Human`
(RFC-0001) active; the 7 duplicates withdrawn (historical records). All three
repos clean and pushed. Local clone of the content repo left at
`~/projects/wiggleverse/ohm-content`.

## Open / next session

- **Import full RFC bodies** (live entries hold short pitches; full prose is
  in `ben/ohm-rfc`) via Start-Contributing → PR → merge, then **graduate**.
- **Reconcile** the pre-existing `informed-consent` body with the corpus.
- **Optional:** run the drafted rfc-app change making graduation
  number-optional (slug-canonical).
- **Operational RFCs** (load-rail, settlement-hold, channel-release,
  discount-at-spend) still unwritten — they now have concepts to cite.
