Problem
Top investors work with teams: spouses, partners, agents, property managers. Current pipeline ownership is per-user only. No sharing.
Acceptance Criteria
Create `Team` model: name, owner (User), created_at
Create `TeamMember` model: team, user, role (owner/admin/member/viewer)
Modify `PipelineProperty` to support team visibility: `team = ForeignKey(Team, null=True, blank=True)`
Update all pipeline views to filter by `Q(user=request.user) | Q(team__members=request.user)`
Add team creation/management UI at `/teams/`
Invite flow: owner sends invite email → recipient accepts → added to team
Role-based permissions: owner (full), admin (manage members), member (CRUD properties), viewer (read-only)
E2E test: create team, invite member, verify shared pipeline visible
Unit tests for permission logic
Implementation Guide (for opencode/mimo v2.5)
Create `Team` and `TeamMember` models in `core/models/team.py`
Add `team` FK to `PipelineProperty` model (migration needed)
Create `TeamPermission` helper class for view decorators
Create team views: create, invite, manage members, leave
Create `templates/teams/*.html` templates
Update all pipeline views to use `TeamPermission` queryset filtering
Add `/teams/` URL patterns
Tests in `tests/test_team_sharing.py`
Dependencies
Problem
Top investors work with teams: spouses, partners, agents, property managers. Current pipeline ownership is per-user only. No sharing.
Acceptance Criteria
Implementation Guide (for opencode/mimo v2.5)
Dependencies