CompanionUI Flow Specification v0.2 (consent mechanics) — this document shows the SAME consents arising inside real product journeys
Identity spineOne account, one SUID across all three properties (Keycloak `swomi` realm, suid claim in every JWT)
What this document adds
The companion spec proved the consent mechanics. Counsel's outstanding ask was the consents running under application user flows. Here are seven journeys a real Content Lifestyle user takes, with each consent event appearing where the product naturally raises it — never at registration, never as a gate on free service. The persistent instruments are unchanged: the C1/C2/C3 ledger strip and the actor status badge on every screen.
The one structural guardrail this document exists to evidence (Art. 7(4)): the free service is funded by the content a user adds to their account — their allowance accrues from their library, and it accrues identically whether every consent is ON or OFF. Consent toggles never change the allowance, the price (€0), or feature access outside the consented feature itself. If allowance ever depended on a consent state, the consent would not be freely given. This rule is repeated on-screen in CL-06 and is a test assertion.
CL-01
Onboard & first content upload — Swomi.com
Registration is the invite + magic-link flow of companion Flow 01 (auth-only, all consents OFF). The first real product act is adding content to the library. Storing and managing the user's own content is performance of the contract (Art. 6(1)(b)) — no consent modal appears, and the allowance starts accruing immediately.
Swomi.com · Library09:55
C1 OFFC2 OFFC3 OFF
Add your first content
↑ 14 photos · 2 videos · 1 essayuploading… 62%
Your content stays yours, in your sovereign storage (suid:a3f9…e217). Storing and organizing it is part of the service — nothing here turns on learning, sharing, or prediction.
Your free allowance — funded by your library
Content in library17 items
Monthly allowance earned2,400 CU
Price€0 — free service
Allowance comes from the content you add — never from any privacy choice. Toggles in Settings don't change it.
CL-01 — Library upload + allowance birth. The contract basis is stated in product words; the Art. 7(4) guardrail appears at the very first allowance the user ever sees.
No consent event — by design
Uploading one's own content to one's own library needs no consent: it is the service (Art. 6(1)(b)). The ledger strip shows all OFF while the product is already fully useful — the freely-given foundation for everything later.
Chat about your content — SwomiChat, Consent 1 arises in context
The user asks their Actor to work with the library. The moment continuity would help, the Actor states the limit honestly; the C1 modal (companion Flow 03, identical record fields) opens only if the user asks. Same SUID, same ledger — different property.
SwomiChat.com10:04
◈
Aino USER-BONDED
AI assistant — you are talking to an AI
C1 OFFC2 OFFC3 OFF
You
Go through my 17 library items and tell me which three are strongest.
Aino USER-BONDED
Done — the harbor video, the sauna essay, and the March photo set stand out. Want the reasoning?
You
Remember my taste for next time?
Aino
Right now I don't keep anything between sessions — profile learning is off by default. It's a separate switch, reversible any time, and it never changes your free allowance.
⛔ Zone B write refused — no active personalization consent (companion Flow 02 gate)
CL-02 — The C1 moment, user-initiated. Working ON the content needs no consent; remembering the USER does. The Actor names the allowance guardrail unprompted.
Same consent, real journey
The grant mechanics are companion Flow 03 verbatim (version, policy hash, method, audit row). What this journey adds: the trigger is the user's own request, on a different property, against the same SUID — evidence the consent model is account-wide, not per-site.
Publishing is a contract action with visibility controls — not Consent 2. But if the Actor co-created the piece, the AI Act Art. 50 synthetic-content label attaches and cannot be unticked.
SwomiBuzz.com · Publish10:18
C1 ONC2 OFFC3 OFF
Publish "Sauna, Silence, Signal"
VisibilityPublic ▾ (Followers / Private)
Co-created with AinoAI-assisted label: ON (required)
Group intelligencenot involved — C2 is off
Save draft
Publish
Publishing makes this item public under your Terms. It does not share your profile, does not join any group, and does not change any consent.
CL-03 — Publish with mandatory AI-assistance label. The fine print explicitly severs publishing from the consent model — the negative disclosure counsel asked the flows to make visible.
Art. 50 on the feed
Actor-co-created content carries a non-removable "AI-assisted" label on SwomiBuzz, satisfying synthetic-content disclosure independent of any consent state.
EU AI Act Art. 50 · Companion Flow 02 (badge discipline)
CL-04
Join a creator circle — Consent 2 inside the journey, then contribute
The user wants what circles offer: pooled insight about what content lands. That desire is the honest trigger for the Consent 2 modal (companion Flow 05, prediction sentence first). After grant, contributing a content-insights partition shows the 30-day bring-home chip (companion Flow 06) in product skin.
Your contributioncontent-insights partition 30 days to bring home · Terms §[X]
Circle insight (O1 — shown to you only)
Essays with a personal opening are resonating in this circle right now.
Why am I seeing this? → pooled trend, shown to you; no decision was made about you. Pool data is never used for global model improvement (Firewall #5).
CL-04 — Circle join + contribution + first O1 insight. One screen carries the consent timestamp, the operational contribution with its Terms clock, and the prediction transparency affordance.
Q1/Q3 inside a journey
The collapse (participation + contribution + prediction in one consent) and the two-clock separation are now evidenced in the application surface counsel will actually review, not only in the mechanics spec. Bring-home behaves exactly as companion Flow 06 — and is enforced by migration 002 (tests T4–T9).
Content value insights — "make the most of your content"
The monetization promise rendered compliantly: O1 insights about the user's own unrealized value, O2 suggestions for their own library — and a hard visible boundary before anything that routes, prices, or contacts (O3/O4 stay carved out per Counsel Q8).
Swomi.com · Value10:40
C1 ONC2 ONC3 OFF
Your content value review
Unpublished strong items6 of 17
Estimated unrealized value€[X]/yr — estimate, see method
[OPERATOR] The "$1,800/yr average missed value" figure may only appear here or in marketing with documented substantiation (method + dataset). Unsubstantiated earnings claims are a consumer-protection exposure (UCPD/CASL-adjacent) separate from the privacy pack. Until substantiated: per-user estimate with a visible "how we estimate" link, no population average.
Suggestions (O2 — your library only)
Publish the harbor video to your followers; pair the sauna essay with the March set.
We never change offers, pricing, eligibility, or contact anyone based on predictions (O3/O4 are not active). If that ever changes, it will be specifically disclosed first.
CL-05 — Value insights with the O-tier boundary on-screen. The negative assurance ("we never…") is itself a disclosure counsel can hold the product to.
Where monetization meets Art. 22
Anything beyond showing and suggesting — payout routing, differential offers, automated outreach to buyers — is O3/O4: feature-specific risk classification, Art. 22 human-review path, and explicit Terms/Privacy disclosure before launch. This screen draws that boundary in user-visible words.
[OPERATOR] Substantiate or shelve the $1,800 figure before any user-facing or marketing use; define the per-user estimation method for the "see method" link.
CL-06
Allowance & usage — no surprises on a free service
The companion Flow 10B meter, completed with the content-funding model: how allowance is earned, what happens at the limit, and the guardrail that consent state can never touch it.
Swomi.com · Usage10:50
C1 ONC2 ONC3 OFF
This month
Allowance (from 17 library items)2,400 CU
Used1,130 CU
Earn moreadd content, or wait for reset
At the limitservice pauses · we ask · never a silent charge
Charges possible todaynone — free service
Guardrail: your allowance is identical with every consent ON or OFF. Privacy choices never cost allowance — verified monthly, published in the transparency note.
CL-06 — Content-funded allowance. "Free, limited by the content you provide" stated as mechanics: earn by adding to YOUR library — never by consenting to share it.
The Art. 7(4) test, made testable
Acceptance assertion: compute allowance for the same library under all eight C1/C2/C3 combinations — results must be identical. Add this to the Annex B suite when the allowance service exists; the published guardrail line turns it into a standing commitment.
[OPERATOR] Define the CU-per-content-item formula (by type? size? engagement?) — and confirm "content provided" means items in the user's own library, NOT items contributed to circles, so the allowance never quietly incentivizes Consent 2.
CL-07
One account across three properties — the hub
Swomi.com, SwomiChat and SwomiBuzz share one account, one SUID, one consent state. That cross-property identity is itself a disclosure item — shown plainly, with the full rights surface of companion Flows 04/07/09 reachable from any property.
Account · all properties11:00
C1 ONC2 ONC3 OFF
One identity, three places
Swomi.comlibrary · allowance · value
SwomiChat.comAino USER-BONDED
SwomiBuzz.com2 published · 1 circle
Storage ID (everywhere)suid:a3f9…e217
Your consents and your data are account-wide: a switch flipped here applies on all three sites instantly. Sign-in is one secure account (auth.swomi.com).
Consents
Export all
Sovereign storage
CL-07 — The hub. Cross-property identity disclosed in one sentence; every right one tap away from any property.
Transparency on the spine
A shared identity across distinctly-branded sites must be disclosed (Art. 13: controller identity and scope) — this screen is that disclosure in product form. The consent state machine being account-wide is also why the ledger strip looks identical on all three properties throughout this document.
GDPR Art. 13 · SOR §18 (SUID claim in every JWT) · Companion Flows 04/07/09
ANNEX
Journey → consent event → companion mechanics
Journey
Property
Consent event in-journey
Mechanics proven in companion
Counsel ref
CL-01
Swomi.com
none — contract basis; allowance birth
Flow 01, 02
Art. 6(1)(b), 7(4)
CL-02
SwomiChat
Consent 1, user-initiated
Flow 03 (record fields), 02 (gate)
Q4 · Art. 7
CL-03
SwomiBuzz
none — publish ≠ consent; Art. 50 label
Flow 02 (badge)
AI Act 50
CL-04
SwomiBuzz
Consent 2 + contribution + bring-home chip
Flows 05, 06 · 002 T1–T11
Q1, Q3, D3, D6
CL-05
Swomi.com
none new — O1/O2 within C2; O3/O4 boundary stated
Flow 05B (O1 card)
Q8 · Art. 22
CL-06
Swomi.com
none — allowance independent of all consents
Flow 10B
Art. 7(4)
CL-07
all three
none — hub to Flows 04/07/09 rights
Flows 04, 07, 09
Art. 13, 15–20
[OPERATOR] before counsel submission: (1) substantiate or remove the $1,800 figure (CL-05); (2) define the content→CU formula and confirm library-only accrual (CL-06); (3) add swomibuzz.com to public DNS + SOR §2 (currently absent); (4) choose the magic-link option in RUNBOOK B §2 so Flow 01 copy matches what ships.