Skip to main content

Org Workspace Completion Milestone

Purpose

This document defines what "finished enough to move on" means for the current org-and-portal client-work slice.

Use it to stop the project from widening before the current workspace feels coherent, trustworthy, and operationally complete.

This is not a long-term roadmap.

It is the current completion gate.

Milestone Goal

Finish the current org workspace holistically before starting another major product expansion.

For this milestone to count as complete, the org workspace must feel like one deliberate system across:

  • collections
  • detail routes
  • analytics
  • Stripe-backed client billing workflows
  • portal-facing follow-through where the current slice already promises it

Included Work

This milestone includes the work that closes the gap between a live slice and a finished operational workspace.

Tracked Checklist

Use this as the live status snapshot for the current baton.

Owner is a workstream owner label, not necessarily a named individual.

WorkstreamStatusOwnerExit signal
Collection consistency across customers, projects, time, billing, and documentsin progressorg workspace UIthe major org collections feel like one system
Row-level quick actions across the org collectionsplannedorg workspace UIrow actions are consistent, useful, and do not break row-open or drag behavior
Detail-route IA cleanup, starting with customers/[clientId]plannedorg detail IAlong detail routes no longer read like stacked dumping grounds
org/(dashboard)/analytics routeplannedorg analyticsanalytics exists as a real sidebar route and complements overview
Stripe invoice and subscription workflows on top of the new backend foundationplannedorg billing workflowsinvoice creation and subscription creation are real app workflows
clientContacts workflow completionplannedclient-work modelclientContacts is no longer only schema-and-seed reality
Multi-company portal access grant rolloutplannedportal access modelone portal identity can hold parallel company grants inside one agency organization
Portal response-loop follow-through for the current sliceplannedportal follow-throughportal billing, files, and project visibility stay coherent with org-side workflows

Current Gate Summary

Right now this milestone should be treated as in progress.

The biggest open completion blockers are:

  • org workspace consistency still needs its final polish pass
  • analytics is not live yet
  • Stripe billing is now structurally real in the backend, but invoice and subscription authoring are not finished in the app
  • the portal access layer still assumes one company per org-scoped portal identity
  • portal-side self-service people management should not ship on top of that old single-company assumption

1. Collection consistency

  • finish the org list polish pass
  • align density, spacing, headers, and row hierarchy across customers, projects, time, billing, and documents
  • add consistent row-level quick actions where they belong

2. Detail-route information architecture

  • convert the detail pages that have outgrown a single long stack into tabbed or otherwise clearer IA
  • keep the detail routes coherent with the list surfaces that lead into them
  • make customers/[clientId] the highest-priority IA decision

3. Analytics drill-in

  • add org/(dashboard)/analytics as a real sidebar route
  • make it the reporting surface for delivery, utilization, receivables, revenue, and billing attention
  • keep overview as the summary cockpit rather than turning it into a giant reporting dump

4. Stripe workflow completion for the current slice

  • keep Polar SaaS billing separate from agency-operated client billing
  • build on the new Stripe foundation already in the backend
  • ship the first real invoice workflow inside org/(dashboard)/invoices
  • ship the first real subscription or retainer workflow inside org/(dashboard)/subscriptions
  • keep webhook-driven Stripe sync as the truth path for mirrored invoice and subscription state

5. Existing schema follow-through

  • surface clientContacts as a real workflow instead of leaving it schema-only
  • continue using the current first-wave tables instead of inventing second-wave convenience tables

6. Portal follow-through for the current promise

  • land the multi-company portal access grant model before deeper client-managed people administration
  • keep the portal aligned with the current org slice where visibility is already expected
  • improve client-facing response loops only where they naturally finish the current delivery and billing promise

Explicitly Not In This Milestone

Do not treat these as part of the current completion gate:

  • platform multi-agency operations
  • richer time locking and approval depth beyond the current workflow
  • complex document approval or request systems beyond the first believable loop
  • CRM expansion
  • proposal generation
  • a second major analytics product area outside the org workspace
  • advanced Stripe finance operations such as a full refund and credit-note console unless they are required to make the first invoice flow legitimate

Completion Rule

Do not move on to the next major expansion until all of the following are true.

Workspace quality

  • the major org collections feel like one system
  • the major detail routes feel intentional rather than stacked dumping grounds
  • the org sidebar has a real analytics drill-in route

Billing legitimacy

  • an agency can operate its own client billing relationship from inside the app without the current flow collapsing back to manual mirrored Stripe ids
  • invoice creation exists as a real app workflow
  • subscription or retainer creation exists as a real app workflow
  • Stripe connection health and sync health are visible enough to trust the billing surface

Model follow-through

  • clientContacts is no longer only schema-and-seed reality
  • the current first-wave schema is being used instead of worked around
  • portal access is grant-based per company instead of being trapped in a one-company portal membership assumption

Portal follow-through

  • the current portal billing, files, and project visibility story is coherent with the org-side workflows already shipped
  • the portal is not promising more than the org workflows can actually support
  1. collection polish and parity
  2. row quick actions
  3. detail-route IA cleanup
  4. analytics route
  5. Stripe invoice and subscription workflows on top of the new backend foundation
  6. clientContacts workflow completion
  7. multi-company portal access grant rollout
  8. portal response-loop follow-through

Sanity Check Before Starting New Expansion

Before starting another major product area, ask these questions:

  • would a real agency operator think the current org workspace feels finished, or still obviously mid-transition?
  • are we extending the current model, or compensating for unfinished work with new surface area?
  • are we still using the first-wave tables directly, or quietly inventing new ones because the current workflows are incomplete?
  • would the next expansion make the current workspace feel stronger, or just make the unfinished parts easier to ignore?

If those answers are weak, finish this milestone first.