docs: update roadmap with Phase 2 (Dynamic Pipelines) completion status

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Leivur R. Djurhuus 2026-03-14 22:46:41 -05:00
parent 40028b7ced
commit 2c75317e9f

View file

@ -3,7 +3,7 @@
> Single source of truth for project status and remaining work.
> Previous planning documents (IMPLEMENTATION_PLAN.md, UPGRADE_PLAN.md) are archived in `docs/archive/`.
*Last updated: 2026-03-14*
*Last updated: 2026-03-14 (Phase 2 complete)*
---
@ -67,6 +67,47 @@
| **Weekly executive report** | Full report page at `/reports/weekly/[date]` with KPI strip, completed, deadlines, at-risk, upcoming sections |
| **Skill data model** | `Skill`, `UserSkill`, `StageSkillRequirement` in schema with seed data — **no assignment UI yet** |
### Phase 2: Multi-Brand Ready (Dynamic Pipelines)
| Feature | Status |
|---|---|
| **WP1 — RBAC Foundation** | ✅ Complete |
| `Permission` enum (20 perms) + `OrgRolePermission` model | ✅ |
| `requireAuth(permission?)` replaces `getAuthSession()` across all 28 API routes | ✅ |
| Default permissions per role (ADMIN/PRODUCER/ARTIST) with org-level overrides | ✅ |
| Permission matrix settings page (`/settings/permissions`) | ✅ |
| **WP2 — Org Hardening** | ✅ Complete |
| Denormalized `organizationId` on Deliverable + DeliverableStage | ✅ |
| `assertOrgAccess()` on all project/deliverable/stage API routes | ✅ |
| Backfill script (`scripts/backfill-org-ids.ts`) | ✅ |
| **WP3 — Dynamic Pipeline Schema** | ✅ Complete |
| `PipelineTemplate`, `PipelineStageDefinition`, `PipelineStageDependencyV2` models | ✅ |
| `pipelineTemplateId` on Project, `stageDefinitionId` on DeliverableStage | ✅ |
| Stage resolver normalizes old/new definitions | ✅ |
| `deliverable-service.ts` creates stages from project's dynamic pipeline | ✅ |
| Migration script (`scripts/migrate-to-dynamic-pipelines.ts`) | ✅ |
| **WP4 — Pipeline Template CRUD** | ✅ Complete |
| Full service: list, get, create, update, archive, duplicate | ✅ |
| Stage CRUD: add, update, remove, reorder | ✅ |
| Dependency management with cycle detection | ✅ |
| Pipeline validation (cycles, orphans, root stages) | ✅ |
| 8 API routes under `/api/pipelines/` | ✅ |
| **WP5 — Pipeline Builder UI** | ✅ Complete |
| `@xyflow/react` dependency graph visualization | ✅ |
| Pipeline list page (`/settings/pipelines`) with create, duplicate, archive | ✅ |
| Pipeline editor page with two-panel layout (stage list + dependency graph) | ✅ |
| Stage edit sheet, validation banner, custom edge with delete | ✅ |
| **WP6 — Invite System & Org Onboarding** | ✅ Complete |
| `Invitation` model with token-based accept flow | ✅ |
| Invitation service: create, list, revoke, accept | ✅ |
| Team settings page (`/settings/team`) with member list + invite form | ✅ |
| **WP7 — Custom Fields & Notification Rules** | ✅ Complete |
| `CustomFieldDefinition` model + `customFields` JSON on Project/Deliverable | ✅ |
| `NotificationRule` model (org-scoped event + conditions + channels) | ✅ |
| CRUD services, validators, hooks, API routes for both | ✅ |
| Custom fields settings page (`/settings/fields`) | ✅ |
| Notification rules settings page (`/settings/notifications`) | ✅ |
---
## Remaining Work — Priority Order
@ -735,8 +776,13 @@ Note: `Dockerfile` and `docker-compose.yml` already exist in the repo root — r
| Model | Status |
|---|---|
| Organization, User, Account, Session | ✅ |
| PipelineStageTemplate, PipelineStageDependency | ✅ |
| Project, Deliverable, DeliverableStage | ✅ (with pgvector embedding columns) |
| PipelineStageTemplate, PipelineStageDependency | ✅ (legacy global, kept for backward compat) |
| PipelineTemplate, PipelineStageDefinition, PipelineStageDependencyV2 | ✅ (Phase 2 — org-scoped dynamic pipelines) |
| OrgRolePermission | ✅ (Phase 2 — RBAC) |
| Invitation | ✅ (Phase 2 — invite system) |
| CustomFieldDefinition | ✅ (Phase 2 — custom fields) |
| NotificationRule | ✅ (Phase 2 — notification rules) |
| Project, Deliverable, DeliverableStage | ✅ (with pgvector, customFields JSON, org denormalization) |
| StageAssignment, Revision, Comment | ✅ |
| Notification | ✅ |
| AutomationRule, AutomationExecution | ✅ |
@ -779,6 +825,12 @@ src/
│ │ ├── reviews/ # A7 Review sessions
│ │ ├── templates/ # D3 Project templates
│ │ └── settings/
│ │ ├── permissions/ # ✅ Phase 2 RBAC matrix
│ │ ├── pipelines/ # ✅ Phase 2 Pipeline builder
│ │ ├── team/ # ✅ Phase 2 Team + invitations
│ │ ├── fields/ # ✅ Phase 2 Custom fields
│ │ ├── notifications/ # ✅ Phase 2 Notification rules
│ │ └── skills/ # ✅ Skills management
│ ├── (portal)/[token]/ # C3 Client portal (external)
│ ├── (external)/review/ # B3 External review links
│ └── api/
@ -789,12 +841,14 @@ src/
│ ├── workload/ # ✅ Capacity grid + heatmap components
│ ├── calendar/ # ✅ Calendar components
│ ├── reports/weekly/ # ✅ Weekly report components
│ ├── pipeline-builder/ # ✅ Phase 2 Pipeline graph + stage list
│ ├── revisions/ # A1 Image comparison (to build)
│ ├── review/ # A2-A7 Full review viewer (to build)
│ ├── automations/ # D1 Automation UI (to build)
│ └── search/ # ✅ Smart search panel
├── lib/
│ ├── pipeline/ # ✅ Dependency engine + stage machine
│ ├── pipeline/ # ✅ Dependency engine + stage machine + stage resolver
│ ├── rbac/ # ✅ Phase 2 permissions + org scope + requireAuth
│ ├── automation/ # ✅ Event bus + rule engine + executor
│ ├── services/ # Business logic per entity
│ └── validators/ # Zod schemas
@ -822,11 +876,12 @@ export NVM_DIR="$HOME/.nvm" && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
| Library | Purpose | Feature |
|---|---|---|
| `@xyflow/react` | Pipeline dependency graph visualization | ✅ Phase 2 WP5 (installed) |
| `sharp` | PNG alpha compositing + image validation + thumbnail generation | A1, E1, E2 |
| `bcryptjs` | Password hashing for portal links | C3 |
| `@react-pdf/renderer` | PDF export for weekly report download button | C — weekly report enhancement |
---
*Document version: 1.0 — Created 2026-03-14*
*Document version: 1.1 — Updated 2026-03-14 (Phase 2: Dynamic Pipelines complete)*
*To be updated as features are built and priorities shift.*