Navin

Organization shared projects

Team organizations can create shared projects with specialty ownership zones, an event feed for notifications, and a PM cockpit API.

Prerequisites

Run SQL in this order after organizations:

  1. site/supabase/2026-08-02-organizations.sql
  2. site/supabase/2026-08-02-org-projects.sql

Concepts

ConceptMeaning
org_projectsShared project bound to an org (repo URL, default branch)
org_project_membersRoles: lead (PM), contributor, observer + specialty label
org_ownership_zonesPath globs per member (webui/**, navin/**, …)
org_project_eventsAppend-only feed (PR, conflict, ticket, report, …)

Anti merge conflicts

  1. Assign each contributor a specialty and one or more path globs.
  2. Before commit / PR, call POST /api/orgs/projects/:id/check-ownership with the changed paths.
  3. Paths with no owner are allowed (greenfield).
  4. Paths owned by someone else are blocked unless a project lead forces the change.
  5. Prefer one board ticket → one branch feat/<ticket-id>-slug.

Local helper (Python): navin.collab.ownership.

APIs

MethodPath
GET/POST/api/orgs/projects
GET/api/orgs/projects/[projectId]
POST/api/orgs/projects/[projectId]/members
POST/api/orgs/projects/[projectId]/zones
GET/POST/api/orgs/projects/[projectId]/events
POST/api/orgs/projects/[projectId]/check-ownership

All require a logged-in navin.live session (same-origin). Writes use the service role server-side.

Suggested Team 5 layout

SpecialtyZones (example)
Frontendwebui/**, site/src/components/**
Backendnavin/**, site/src/app/api/**
Data / SQLsite/supabase/**
QA / Securitytests/**
Project leadno code zones (lead role + cockpit)

PM / direction

  • Members with project_role = lead (or org admin) manage members and zones.
  • Org viewer can read project events when granted project membership as observer.
  • Poll GET .../events or the detail endpoint for a live activity stream.
  • Emit report / blocker / conflict events from CI, git hooks, or the agent.

Source: content/docs/org-projects.md