Self-governed household modes — single-user & peer/friends (DEFERRED — research note)
Status: DEFERRED — captured for future reference + research. Not in scope for MVP.
Date: 2026-06-25
Related: [rewhaven-member-roles-and-goals memory], docs/decisions/2026-06-22-northstar-poc-domain-gaps.md, the auth/identity post-MVP notes, North Star "fade to intrinsic motivation".
The idea (pin this discussion)
Today Rewhaven assumes a parent-governed household: a parental member
(MemberKind.isParental) gates the human-in-the-loop steps — approving chore
completions, approving requested goals, granting roles — and zero-trust RLS is
split into member_household_ids() (any member) vs parental_household_ids()
(parents only).
The user wants two self-governed variants documented as future directions. Both stay an extension of the existing household (same economy, rooms, catalog, zero-trust scoping) — what changes is the governance model: there is no parent/child authority gradient; members govern themselves (and/or each other) as peers.
- Single-user mode — one self-governing user. A personal token-economy / habit space: you set your own goals, define your own chores/bounties, and there is no separate approver. Plausibly the natural graduation state of the North Star "fade to intrinsic motivation" (a teen/adult who has internalized the loop and no longer needs an external approver).
- Peer / friends mode — a small group of friends (or roommates, or an adult co-op) sharing one household. All members are self-governed peers: no parental gate. Governance is mutual or self — e.g. peer endorsement, mutual approval, or no approval at all (auto). Think shared-accountability group, not a family.
Why defer
- The whole approval/goal/RLS stack currently encodes the parental gate. A self-governed mode is a cross-cutting governance change, not a feature add.
- MVP is the family case; single-user and peer are adjacent markets, not the core wedge. Documenting now (cheap) keeps the door open without diluting MVP.
Open research questions (the meat for a future spec)
- Who approves? Invariant 4 (human-in-the-loop) routes completions through
an
Approval. Single-user ⇒ self-approve (the existingApprovalPolicy.autois a likely seam — every chore auto-approves). Peer ⇒ self-approve, any-peer approve, or quorum? Decide per-mode defaults and whether they are configurable. - Goals.
requestGoal → approveGoalis parental. Self-governed ⇒ goals are created already-active(no request step), or peer-endorsed. TheGoalStatus.requestedstate may be unused in these modes. - Roles vs kinds. Current split:
MemberKind(relationship, immutable) vsMemberRole {admin, helper, member}(permissions) vsMemberStatus. In a peer house everyone is effectivelyadmin/memberwith noisParentalrelationship. Does "self-governed" become a household-level mode flag, or is it emergent from "all members are admins / none are parental"? A mode flag is cleaner and avoids overloadingMemberKind. - Zero-trust / RLS. Still household-scoped (extension of the house), so
member_household_ids()policies hold. Butparental_household_ids()gates lose meaning — they must either no-op (every member is "parental" in a self-governed house) or be replaced by a mode-aware policy. Needs a migration story; keep the policy functions mode-aware rather than per-household-hardcoded. - Token economy semantics. Does a self-governed economy still issue/spend tokens, or does single-user mode lean toward streaks/intrinsic tracking with tokens optional? Ties directly to the fade-to-intrinsic thesis — research whether single-user is "tokens off by default."
- Identity / accounts. Peer mode ⇒ several accounts, each
auth_user_idlinked to its own member profile (the existinglinkAccountToMember/ account-first path). Invites become peer invites, not co-parent invites (relates to the deferred co-parent OAuth-scope work). - Onboarding & positioning. Single-user (personal habit tracker), peer (friends/roommates accountability co-op), family (parent-child) are three distinct onboarding flows and value props from the same core. Market research: which adjacent segment is worth a real flow first.
Architectural touchpoints (where a future implementation would land)
- SDK:
ApprovalService/ApprovalPolicy(self/auto-approve),EconomyServicegoal lifecycle (skiprequested), a household-levelgovernanceModefield. - Schema/RLS: mode-aware
parental_household_ids()(or agovernance_modecolumn onhouseholdsconsulted by the policy functions). - App: mode-specific onboarding + hiding the parent-only surfaces (approval queue, goal-approve) when self-governed.
Next step when revived
Brainstorm → spec a single governanceMode { familyGuardian, peer, solo }
on the household, with per-mode approval/goal/RLS behavior, rather than three
forked codebases. Single-user and peer are then two values of one axis, not two
features.