# 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/.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.