coulomb-social/docs/capability/existing-bubble-capability-map.md
tegwick 64d4dcda7c Note page-first content with markitect transclusion as chunk model
Document markitect include/selector/region/explode primitives and map Bubble
chunks to addressable extractions rather than a priori chunk storage.
2026-08-12 23:48:25 +02:00

389 lines
16 KiB
Markdown
Raw Permalink 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.

# Existing coulomb.social — hierarchical capability / feature map
| Field | Value |
|-------|--------|
| System | **Live Bubble app** at `https://coulomb.social` (not the Railiance rebuild) |
| Date | 2026-08-12 |
| Confidence | **Mediumhigh** for types/views from client packages; **low** for backend workflows without editor export |
| Machine index | [`existing-bubble-capability-map.yaml`](./existing-bubble-capability-map.yaml) |
## Evidence base
| Source | What it gave |
|--------|----------------|
| Bubble client packages (`static.js` / `dynamic.js` for `index` + `vw_pages`) | `custom.*` data types, display field names, view tokens (`vw_*`, `x_pg_*`, `pg_*`), UI strings |
| Design extract (auth crawl, 7 routes, 2026-08-09) | Research surface, CTA icons (copy/favorite/filter/add/note), card-like groups |
| Public HTTP | `/`, `/vw_pages`, `/reset_pw`, empty public Data API types |
| Marketing SEO | Product pillars (ideas, social, marketplace, monetize curiosity) |
**Method note:** Bubble ships type and UI labels in browser packages even when `/api/1.1/meta` exposes no types. Field lists below are **inferred from package symbols and `display` labels**, not from a formal schema export. Names marked `?` need editor confirmation.
---
## Top-level product pillars (marketing → capability domains)
From SEO / Open Graph:
1. Brainstorm, discuss, refine, implement, promote **ideas**
2. **Social network** for building and influencing what is built
3. **Marketplace** for challenges, methods, solutions
4. **Monetize curiosity**
These pillars map to the capability tree below (not 1:1 with Bubble page names).
---
## Hierarchy legend
```text
Capability domain
└── Capability (utility)
└── Feature (observable product behavior / UI affordance)
· Bubble type / view (implementation evidence)
```
**Stage-1 rebuild tags** (from cut decision):
`S1` = must for productive transfer · `later` · `out` · `platform` · `unknown`
---
## 1. Identity & access
### 1.1 Member account lifecycle — `cap.bubble.member-account`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Sign up | UI string “Sign up”, `do_signup` | S1 → NetKingdom |
| Login with existing account | “Login with existing account” | S1 → NetKingdom |
| Email confirmation | “Click here to confirm your email address” | S1 → NK mail |
| Password reset | `/reset_pw` page | platform (NK) |
| Current user / principal | displays: Current user, Principal, User | S1 |
| Profile names | NameFirst, NameLast, NameNick, Avatar | later / partial S1 |
| Preferences | Preferences | later |
| Roles / admin flags | Role, Admin, SuperAdmin, SuperAdminAdmin, UserRoles (deleted labels) | later |
**Bubble types:** `_User` / User (built-in + custom fields).
### 1.2 Space membership & roles — `cap.bubble.space-membership`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Members list on space | Members, `members_list_user`, Members display | S1 |
| Guests vs members | Guests, AddNewUsersAsGuest, AddNewUsersAsMember | S1 partial |
| Admins / associates | Admins, Associates | later |
| Invites | Invites, `vw_invites`, “Invite a friend to join” | later / S1 optional |
| Access / privacy | Access, IsPrivate, Is Active | S1 partial |
| Seats (capacity) | SeatsMax, SeatsTaken (deleted) | later / out |
**Bubble types:** `custom.space` + user lists; invite objects inferred.
---
## 2. Spaces (containers)
### 2.1 Space as co-creation context — `cap.bubble.space`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Create new space | “Create new space” | S1 |
| Select / switch space | SelectedSpace, `spaceselected_custom_space` | S1 |
| Space list / browse | `vw_spaces`, Featured Spaces | S1 |
| Space detail fields | Space, Title?, Description, Mission, Vision, Goal, Strategy, Tactic, Objective | S1 core: Title + Abstractor + Visual; rest later |
| **Abstractor** | display Abstractor, `abstractor_text` | **S1** (you named this) |
| **Visual** | display Visual, `visual_image` | **S1** |
| Header / logo imagery | Header Image, Logo, logo_image | S1 / Visual family |
| Archive space | Archived | S1 (delete/archive) |
| Space-linked code repo | `custom.relspacerepo`, `custom.coderepository`, Repo, Repobase | later |
| SpaceLet (space projection?) | SpaceLet | unknown |
**Bubble type:** `custom.space`
**Views:** `vw_spaces`, `pg_space`
### 2.2 Space discovery — `cap.bubble.space-discovery`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Search spaces/content | `vw_search`, Search, Fuzzy search & Autocomplete | later |
| Featured spaces | “Featured Spaces” | later |
| Feed of activity | `vw_feed` | later |
---
## 3. Pages & chunks (content atom family)
This is the **core information architecture** of live coulomb: hierarchical content under spaces.
### 3.1 Page — `cap.bubble.page`
Utility: a navigable content unit belonging to a space (and/or article stack).
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Open / change page | Page, PageData, ChangePage, PageByName, Current Page Width | S1 |
| Page list / research surface | **`vw_pages`** (primary Research UI), title “Research \| Coulomb” | S1 |
| Page fields: Title | Title, title_text / title_attribute | **S1** |
| Page fields: Abstractor | Abstractor | **S1** |
| Page fields: Visual | Visual | **S1** |
| Page fields: Description / Content | Description, Content (some “- deleted”) | S1 body |
| Markdown-oriented display | MarkdownCodeDisplay, client `marked` + highlight.js | S1 |
| PageLet | PageLet / pagelet | unknown (projection widget?) |
| Create page | inferred (Create / Click to create!) | S1 |
| Edit details | “Edit details”, Edit A | S1 |
| Copy page content | content_copy icon (×25 in extract), Copy HTML / copy with links plugins | **S1** (product copy) |
| Parent / hierarchy | Parent, Extends | later / S1 if tree required |
| Publication | PublicationDate, publish counts in package | later |
| Type system for pages | Type, xTypeSchema, xTypeTemplate, xTypeVersion* | later (powerful; not S1) |
**Bubble type:** `custom.page`
**Views:** `vw_pages`, possibly `pg_*` variants
### 3.2 Chunk — `cap.bubble.chunk`
Utility: **composable content block** inside pages/articles (finer than page).
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Chunk list / selection | `_Chunk`, `_Chunks`, SelectedChunk, chunks_list, `vw_chunks` | S1? or collapse into page body |
| Create subchunk | new_chunk, new_subchunk, Subchunks | later |
| Chunk types / menu | ChunkType, MenuChunk, InfoChunk | later |
| Temp chunk staging | TempChunks, tempchunks_list | later |
| Stage workflow on chunks | Stage1Prepare … Stage5Done, StageGoal, StageState, StageSpecification | later (work planning) |
| Sprint / backlog logs | BackLog, SprintLog, HistLog, Progress | later |
| Attachments on chunk | hasAttachments, `_Attachment`, `custom.relattachment` | later / S1 for visual only |
**Bubble type:** `custom.chunk`
**Views:** `vw_chunks`, `pg_chunk`
**Rebuild note:** Prefer **page-first + transclusion** (markitect include/selector/region)
over recreating `custom.chunk` as storage atoms. See
`docs/architecture/transclusion-and-chunks.md`. Confirm with product use whether
users need chunk lists as primary UX or only as derived views.
### 3.3 Article / scrap / content variants — `cap.bubble.article-family`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Article with chunk lists | `custom.article`, many `*_list_custom_article` | later |
| Scrap | `custom.scrap` | later |
| Clipper | `custom.clipper_` | later |
| Content stages s1s5 on article | s1…s5 fields | later |
| Followers on article | followers_list, follows | later (social) |
| Feed list | feed_list | later |
| History / histlog | history, histlog_list | later |
**Bubble types:** `custom.article`, `custom.scrap`, `custom.clipper_`
### 3.4 Card presentation — `cap.bubble.card-ui`
Utility: **playing-card-like** interaction with content entities.
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Card medium / large groups | `Group_card_medium_`, `Group_card_large_` | S1 UI pattern |
| Deck layouts | `pg_deck_s`, `pg_deck_m`, `pg_deck_l`, `pg_deck_game` | later / S1 inspiration |
| Repeating groups (lists of cards) | RepeatingGroup* | S1 lists |
| Visual + title + abstractor on card face | Visual, Title, Abstractor co-occur on content types | **S1** |
This is a **presentation capability** over page/chunk/space entities—not a separate data type.
---
## 4. Social graph & engagement
### 4.1 Social mixin — `cap.bubble.social`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Social mixin attachment | `custom.socialmixin`, MixinSocial | later |
| Likes | `custom.rellike`, `vw_likes`, favorite_border icons, Likes (deleted) | later |
| Followers / following | Followers, Following (deleted labels), follows_list | later |
| Flocks (groups of people?) | Flock, FlockName, MeFlock, MyFlocks, cacheFlock | later |
| Nects (connections?) | Nects, nects_list | later |
| Knockers | Knockers | unknown |
| Chatter (prompt/content) | ChatterContent, ChatterPrompt | later (AI/chat?) |
| Share | share strings in packages | later |
| Messaging | Message display (very frequent in dynamic UI — may be framework noise + product) | later |
**Bubble types:** `custom.socialmixin`, `custom.rellike`, related lists on article/space.
---
## 5. Collaboration, tasks & work planning
### 5.1 Tasklets & progress — `cap.bubble.work-tracking`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Tasklets | `custom.tasklet`, TaskLets, TaskState | later |
| Loglets / progress | `custom.loglet`, Progress, progress_list | later |
| Effort / estimate | Effort, Efforts, Estimate, Nestimate, Restimate | later |
| Due dates | Duedate | later |
| Attention / claim | Attention, Claim, Claimed | later |
| Resolved / done | Resolved, Done (deleted) | later |
| Create workplan stages | “Create workplan stages here…” | later |
| Task page | `x_pg_task` | later |
### 5.2 Ventures & investment framing — `cap.bubble.venture`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Venture entity | `custom.venture`, MyVentures, Create new venture | later |
| Investlets | `custom.investlet`, InvestLets | later |
| Rel invest | `custom.relinvest` | later |
| Auction / marklet | `custom.auction`, MarkLet | later / out |
| Funds / amount / bounty | Funds, Amount, Bounty, Jackpot (deleted) | later / out |
Looks like an **investment / venture marketplace** overlay on spaces—not stage-1 transfer.
---
## 6. Marketplace: challenges, methods, solutions
### 6.1 Challenges — `cap.bubble.challenge`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Challenge entity / page | Challenge, ChallengeTitle, `x_pg_challenge` | later |
| Explore challenges | “Explore challenges” | later |
| Job / company / organization | `custom.job`, `custom.company`, `custom.organization` | later |
| CV / calling | CV, Calling | later |
Marketing “methods and solutions” lack clear type names in packages—may be modeled as page **Type** / templates (`xTypeTemplate`) rather than separate types.
---
## 7. Monetization & billing
### 7.1 Payments — `cap.bubble.monetization`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Stripe checkout | Create Checkout Session Direct Charge, Stripe Session ID | out / later |
| Subscriptions | Subscription, Bubble Billing Variant | out / later |
| Store products | Store, Store Product Identifier, Google Base Plan ID, purchase identifiers | out / later |
| Seats / billing capacity | SeatsMax | later |
**Stage-1:** out of productive-transfer set.
---
## 8. Integrations & platform glue
### 8.1 External systems — `cap.bubble.integrations`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Code repository link | `custom.coderepository`, Repo, repository_url (deleted), Gitea (deleted) | later |
| Social URLs | Twitter URL, Instagram URL, Youtube URL | later |
| Domain / environment | Domain (deleted), Environment | platform |
| Proxy | ProxyType, ProxyOrigin (deleted) | unknown |
| Widgets | `custom.widgets_` | later |
| Broadcast channels | BroadcastChannel_get/send | later |
| Push tokens | Push notification token | later |
### 8.2 Quality / schema metadata — `cap.bubble.type-quality`
| Feature | Evidence | Stage-1 |
|---------|----------|---------|
| Type schema / template / version | xTypeSchema, xTypeTemplate, xTypeVersionMajor/Minor | later |
| Quality flags | xQualityPrivacy, xQualityResponsible, xQualityApproved (deleted) | later |
| Canonical | Canonical | later |
Suggests an advanced **typed content** system beyond free markdown—valuable long-term, not S1.
---
## 9. Navigation surfaces (Bubble views)
| View / page token | Inferred utility | Stage-1 |
|-------------------|------------------|---------|
| `vw_pages` | Primary Research / page workspace | S1 |
| `vw_spaces` | Space browser | S1 |
| `vw_chunks` | Chunk browser | S1? / later |
| `vw_search` | Global search | later |
| `vw_feed` | Activity feed | later |
| `vw_invites` | Invitations | later |
| `vw_likes` | Likes | later |
| `vw_new` | Create-new entry | S1 |
| `pg_space` | Space page shell | S1 |
| `pg_chunk` | Chunk page shell | later |
| `pg_memo` | Memo | later |
| `pg_player` | Player (game/venture?) | later |
| `pg_deck_*` | Deck / card layouts | UI pattern |
| `x_pg_admin` | Admin | later |
| `x_pg_challenge` | Challenge | later |
| `x_pg_task` | Task | later |
| `x_pg_legal` | Legal | later |
| index / Login / Sign up | Entry + auth | S1 |
| reset_pw | Recovery | platform |
---
## 10. Tree summary (compact)
```text
coulomb.social (Bubble)
├── 1 Identity & access
│ ├── Member account (signup, login, profile, preferences)
│ └── Space membership (members, guests, admins, invites, privacy)
├── 2 Spaces
│ ├── Space CRUD + Title / Abstractor / Visual / mission-family fields
│ ├── Space discovery (search, featured, feed)
│ └── Space↔repo linking
├── 3 Content atoms
│ ├── Page (Research vw_pages) ← primary S1
│ ├── Chunk (sub-page blocks, stages) ← confirm necessity for S1
│ ├── Article / scrap / clipper families
│ └── Card UI (deck/card presentation)
├── 4 Social
│ ├── MixinSocial, likes, follow, flocks, nects
│ ├── Chatter prompts
│ └── Messaging / share
├── 5 Work tracking
│ ├── Tasklets, loglets, estimates, stages
│ └── Ventures / investlets / auctions
├── 6 Marketplace
│ ├── Challenges
│ └── Jobs / companies / orgs (methods/solutions less explicit)
├── 7 Monetization
│ └── Stripe / subscriptions / store / seats
└── 8 Platform glue
├── Integrations (repo, social URLs, widgets)
└── Type schema / quality metadata
```
---
## 11. Mapping to stage-1 rebuild cut
| Existing capability | Stage-1 rebuild target |
|---------------------|------------------------|
| Member account | `cap.member-onboarding` (NetKingdom) |
| Space + Title/Abstractor/Visual + members | `cap.space-content` + membership |
| Page + Title/Abstractor/Visual + body | `cap.space-content` pages |
| Copy (content_copy / page copy) | `cap.page-copy` |
| Move/transfer (package “transfer”; ChangePage / space re-home) | `cap.page-transfer` (confirm Bubble UX name) |
| Card UI | Presentation requirement on rebuild |
| Chunk graph, social, ventures, challenges, payments | **later / out** |
**Strong confirmation from live app:** your stage-1 language (**Visual, Title, Abstractor**, page-centric content, spaces, card-like UI, copy) is **native Bubble vocabulary**, not an invention of the rebuild.
---
## 12. Gaps (need Bubble editor or dump)
1. Exact field schemas per `custom.*` type (types exist; fields incomplete).
2. Whether **transfer page between spaces** is a first-class action or operator workflow.
3. Chunk vs page: which is the unit users think of as “a page.”
4. Full workflow list (backend workflows not in packages).
5. Which marketplace “methods/solutions” types are pages-with-Type vs separate data types.
6. Production usage (what is live vs abandoned—“- deleted” labels are common).
---
## Related
- Inventory: `docs/bubble-inventory/2026-08-12-surface-inventory.md`
- Stage-1 cut: `docs/capability/stage-1-cutover.md`
- Rebuild model (target): `docs/capability/model-v0.yaml`
- Architecture: `docs/architecture/ArchitectureBlueprint.md`