9.7 KiB
Session 0017.0 — Transcript
App: ecomm Start: 2026-06-09T04-01 (PST) · End: 2026-06-09T10-03 (PST) Type: brainstorming (as stamped) — in practice the first capture session (no capture session-type exists yet; that's what this session designed) Goal: opened to explore the admin MVP for ecomm #8; became — capture a stakeholder transcript into Gitea issues, then design the whole Capture phase / Gitea-native delivery model and ship it as an RFC. Outcome: RFC merged to
engineeringmain(PRs #21/#22/#23); plugin Capture backlog created (Epic #24 → Features #25 MVP, #26 quality); ecomm asks captured as issues #7–#22; engineering #19 closed. No ecomm spec produced (capture session — confirmed intentional at finalize).
Launch prompt
Let's talk about what the MVP is from an admin perspective to get to #8. We're going to do #8 before anything else.
(Opened against ecomm #8 = "Adult-toys: SKU creation + image/item import from existing data".)
Plan
- (Pre) Analyze a pasted stakeholder transcript; break into asks; file as priority-labelled Gitea issues. → ecomm #7–#14.
- Brainstorm the admin MVP for #8 (greenfield — "assume nothing done"). → admin-import MVP design, decomposed into Gitea Epic #8 + units #15–#22 + milestone.
- Pivot: generalize what we did into a process — a Capture phase feeding specs (instead of "BDD corpus is the input"). Iterate the model with the operator across many turns.
- Write the consolidated RFC; settle 4 open decisions; merge to engineering. Refine the template (business BDDs; non-binding Solution notes; scope-control motivation).
- Create the wgl-capture Epic + MVP Feature on the plugin repo; close engineering #19 pointing at it.
- Finalize.
Pre-session state
ecomm on clean main (R01–R07 merged, 189 tests green). The session gate classified the opener; routed first to wgl-session-none (the initial ask was just "analyze this transcript"), then — when the work became session-worthy — re-gated mid-session to wgl-brainstorming, claiming 0017. No capture session type existed (this session is why it's now proposed).
Turn-by-turn arc
- Analyze the transcript → issues. Operator pasted a long recorded conversation (Ben/Hassan/Laura re: a thrift+adult-toys shop, Facebook-album commerce, an e-com migration). Broke it into 8 prioritised asks. Filing needed the Gitea issue scope on the admin token — the keychain token was
write:repositoryonly → labels/issues 403'd. Operator re-scoped the PAT (issue scope) overwgl-gitea-token-git.wiggleverse.org. Then created labelspriority/P0..P3+ issues #7–#14. - Admin MVP for #8 (greenfield). Operator: "assume nothing done; map the user journey, smallest surface area." Q&A settled: flat one-product=one-SKU (kits = a SKU with a BOM, deferred); images via URL-in-CSV (importer fetches → stores → attaches); upsert by SKU + per-row report; full web admin slice; async job + status page. Built the journey + capability units → Gitea Epic #8 + units #15–#22, milestone "Admin Import MVP (#8)", textual dependency cross-refs (native Gitea dependency API 404'd — repo "Enable dependencies" setting is off, not API-togglable).
- Pivot to process. Operator: this issue-granularity is the right capture unit; add a Capture phase to the plugin mapping to our eng process; issues become the input to specs (not BDD objects). Long collaborative design across many turns:
- Issue template = the business lens of the Solution Design.
- Agile size taxonomy Epic/Feature/Story/Task; Feature = the unit = smallest vertical valuable increment = one spec; standalone Story/Task issues are one-offs.
- Rolling-wave JIT decomposition: Epic→next Feature carved at triage, one at a time.
- Acceptance gate: only
triaged:acceptedissues feed brainstorming. - WSJF (rejected RICE — Reach meaningless at our scale), in-body + coarse P0–P3 labels.
- Confirmed against superpowers: it has no roadmap concept — tracks next-step via plan-doc checkboxes; "roadmap" was our invention. → remove the roadmap; Gitea board + per-Feature slice checklists are the tracker. slice ↔ superpowers plan = 1-1; spec ↔ plans = N-1.
- Gitea-native loop: "start the next coding session for Feature #xyz" → init reads next unchecked slice; finalize ticks it + files gaps as new issues + closes the Feature. Bookends become Gitea-aware.
- RFC. Wrote
engineering/proposals/capture-phase-and-gitea-native-flow.md. Settled 4 open decisions (AskUserQuestion): §2.5 placement · WSJF in-body+P0–P3 ·wgl-capturetracked-lite · render roadmap on demand. Shipped via worktree-from-origin/main→ PR #21 (mergecbf6a4f). Engineering checkout was parked on an unrelated feature branch — used a worktree to branch cleanly fromorigin/main, never touched it. - Template refinements (operator caught real gaps):
Summary→ Business Use Case(s) — BDD + acceptance (gherkin, solution-agnostic, unhappy paths; folded the standalone Acceptance field in; business-vs-product-BDD note). +Solution notes — prior thinking (non-binding)+ the brainstorming non-canon rule. → PR #22 (mergef279137).Problem/painmust state current cost, not "it isn't built yet"; captured the systemic fix as a Feature. + scope-control motivation (sprawling specs / no dev control over the autonomous build — the dev-facing headline paired with radical transparency). → PR #23.
- Plugin Capture backlog. Found plugin repo =
wiggleverse/wiggleverse-dev-claude-plugin(reusestriaged:accepted; legacy feedbacktype:*colon axis is separate from capturetype/*slash axis). Created Epic #24 (wgl-capture) + Feature #25 (MVP: signal-in-session → typed, source-linked issues) + Feature #26 (capture quality — high-value tickets). Created labelstype/epic|feature,priority/P0|P1. - Closed engineering #19 (the original dogfood seed "wgl-capture gesture + brainstorming/roadmap integration") with a comment pointing to plugin #24/#25 and noting the roadmap-integration half resolved to removing the roadmap.
Wrong turns / friction (uncurated)
- Admin token lacked the issue scope → 403 on first label/issue attempts; operator re-scoped the PAT.
- First
#8modelling was wrong: created it as an Epic with #15–#22 as eight standalone issues. The "Feature = smallest valuable increment" principle later showed these are slices of one Feature, not separate issues → flagged for restructure (NOT yet done). - Native Gitea dependency links 404 (repo dependencies setting off) → fell back to textual Blocked-by/Blocks.
- A compound bash with a heredoc +
rm -rfwas denied → split into a Write-the-script + run pattern, and avoidedrm -rf. - Milestone-create script aborted on a
KeyError: 'number'(Gitea milestone hasid, notnumber) → made milestone lookup idempotent and re-ran.
Cut state (end of session)
engineering (wiggleverse/engineering, main):
proposals/capture-phase-and-gitea-native-flow.md— RFC, merged. PR #21 (commitf03abc4, mergecbf6a4f), PR #22 (commitff77d92, mergef279137), PR #23 (branchproposals/scope-control-motivation, merged). Worktrees removed; parked feature branch untouched.- Issue #19 closed (pointer to plugin #24/#25).
plugin (wiggleverse/wiggleverse-dev-claude-plugin):
- Epic #24
type/epic,triaged:accepted— wgl-capture, the Capture phase skill. - Feature #25
type/feature,triaged:accepted,priority/P0— wgl-capture MVP. - Feature #26
type/feature,triaged:accepted,priority/P1— Capture quality. - New labels:
type/epic(34),type/feature(35),priority/P0(36),priority/P1(37).
ecomm (wiggleverse/wiggleverse-ecomm): working tree clean (no code change). Gitea: issues #7–#14 (the asks, priority/P0..P3), #8 Epic + #15–#22 units, milestone "Admin Import MVP (#8)", labels type/*,triaged:accepted,priority/*. No spec produced.
memory: capture_phase_gitea_native_flow.md (new, with **Next /goal:**), project_ecomm_build.md (process-shift note), MEMORY.md index — all updated.
What lands on the operator's plate
- ecomm #8 + #15–#22 still mis-modelled — to be restructured into one admin-import Feature + slice checklist (drop the standalone unit issues). This is the next ecomm move.
- wgl-capture is ready to build — plugin Feature #25 is an accepted Feature; seed a brainstorming session on the plugin repo to spec it. #26 (quality) follows.
- Gitea "Enable dependencies for issues" is off on both ecomm and plugin repos — flip it in repo Settings → Issues to get native blocked-by links; provisioning should default it on (RFC §11.8).
- Implementing the handbook §-edits (RFC §10) and the plugin skills (
wgl-capture,wgl-triage-captures, the bookend updates) is separate, sequenced work.
Prompt the operator can paste into the next session
/goal Restructure ecomm #8 + #15–#22 into the capture model — recast #8 as the admin-import Feature with a slice checklist, drop the standalone unit issues — so it's an accepted Feature ready to brainstorm into a spec. See memory: capture_phase_gitea_native_flow.md, project_ecomm_build.md.
(Or, to build the skill instead — a plugin-repo session: /goal Brainstorm plugin Feature #25 (wgl-capture MVP) into a Solution Design spec.)
Deferred decisions
None. This was a highly collaborative session — every modelling call (taxonomy, WSJF-over-RICE, no-roadmap, slice↔plan 1-1, the 4 settled RFC decisions) was made with the operator in the loop. No autonomous low-confidence calls to surface.