BC
Brad CodyAdministrator
Current productSettings and builders
Reverse spec drafted

Teammates

Invite people, review membership, manage access and transfer Workspace ownership.

Observed route/admin/settings/teammatesFuture Spec 03
Current maturityWorking Membership directory with legacy seed data
Evidence confidenceVerified
Last reviewedAugust 4, 2026
Visual evidenceDeferred during UI updates

Current-state summary

The Settings Teammates page resolves two active Membership rows, no pending invitations, no Teams and five Role Labels. It provides Workspace ownership transfer, invitation entry, metrics, search/filter/sort behavior, Export and Columns. The active Workspace still carries Proper Gallery seed identity, and the Custom roles metric incorrectly describes Role Labels as authority-bearing roles.

Interface inventory

Anatomy and verified behavior

Verification states separate observed behavior from requirements or assumptions.

ElementCurrent behaviorVerification
Attention metricsActive teammates 2, pending invitations 0, Teams 0 and Custom roles 5.Verified live; Custom roles terminology is incorrect
Membership gridTeammate, Roles, Teams, Access level, Job title, Access and Actions with twelve sort options.Verified live
Current rowsDemo Administrator is Owner; [email protected] is Administrator and carries Administrator as both label and access-level wording.Verified live
Administrative actionsTransfer ownership and Invite teammate are visible; no mutation was performed.Visible only

User journeys

Current flows

01

Invite teammate

  1. Open Teammates
  2. Select Invite teammate
  3. Enter identity
  4. Choose Access Role and optional Role Labels
  5. Send expiring invitation
  6. Resolve acceptance into one Membership
Observed result

Entry point exists; full invitation delivery and acceptance were not exercised.

02

Transfer ownership

  1. Select Transfer ownership
  2. Choose eligible active Membership
  3. Require recent authentication and confirmation
  4. Transfer atomically
  5. Notify and audit
Observed result

Entry point exists; safety controls were not exercised.

State model

Current and expected states

Loading

Metrics initially resolve from zero while the table loads.

Active

Two current rows.

Pending invitation

Metric exists at zero.

Suspended or removed

Not evidenced.

Product rules

Non-negotiable boundaries

  • User identity, Workspace Membership, Access Role, Role Label and Team are separate records.
  • Exactly one active Owner must remain.
  • Role Labels never grant access.
  • Invitations are expiring, revocable and email-bound.
  • Ownership transfer is atomic, recently authenticated and audited.
Dependencies
Supabase AuthWorkspace MembershipsInvitationsAccess Roles and permissionsRole LabelsTeamsNotifications Builder and ResendAudit

Known current limitations · 4 mapped

What is missing, broken or unverified

Future Spec 03 owns closure →
  1. Legacy Proper Gallery identity remains.
  2. Custom roles terminology conflates labels and authority.
  3. Invitation lifecycle, suspension and removal were not verified.
  4. Cross-profile teammate counts have previously conflicted.

Future alignment

Required evolution

  • 01Implement Spec 03 correction contract.
  • 02Rename Custom roles to Role Labels.
  • 03Use one Membership-backed identity and count everywhere.
  • 04Register invitation, acceptance, expiry, revocation, access-change and ownership events.

Current baseline

Acceptance record

  • Two live Memberships are documented.
  • No administrative mutation was performed.
  • Role Labels are never presented as permission grants.
  • One canonical Membership set powers every count and picker.

Reverse-spec completeness

Documentation coverage

The interface is still changing, so visual evidence and repository tracing remain intentionally incomplete.

Purpose and user outcome

Documented

Roles and access

Documented

Routes and entry points

Documented

Page and component anatomy

Documented

Fields and displayed data

Documented

Primary actions

Documented

Forms and validation

Documented

States and transitions

Documented

Empty, loading and error states

Documented

Responsive behavior

Partial

Accessibility behavior

Partial

Activity and audit events

Partial

Data sources and persistence

Documented

Notifications and automation

Partial

Known defects and limitations

Documented

Reusable component dependencies

Documented

Future-spec conflicts

Partial

Visual and repository evidence

Deferred

Acceptance of current baseline

Documented