Files
vfxreview/PROMPT2.md
T
twotalesanimation 0fbe856dce Initial commit
2026-05-19 22:20:29 +02:00

917 lines
12 KiB
Markdown

Update the existing FeedBack platform to add a lightweight production tracking system directly into the current architecture.
IMPORTANT:
Do NOT redesign the app from scratch.
Do NOT build enterprise production management.
Do NOT attempt full ShotGrid/ftrack complexity.
The goal is:
* simple
* fast
* usable
* production-focused
* minimal friction
FeedBack already has:
* projects
* shots
* versions
* reviews
* comments
* approvals
* client portal
We are now extending it into a lightweight VFX production tracker.
The philosophy should be:
“A clean operational layer for boutique VFX studios.”
---
# HIGH LEVEL GOAL
Add:
* production tracking
* tasks
* artist assignment
* deadlines
* kanban boards
* simple scheduling
* upload/review workflow integration
The existing review/version system should become directly attached to production tasks.
IMPORTANT:
The TASK should become the core production object.
Architecture should evolve toward:
```plaintext id="c2o8kh"
Project
├── Shots
│ ├── Tasks
│ │ ├── Versions
│ │ ├── Comments
│ │ └── Approvals
├── Assets
│ ├── Tasks
│ │ ├── Versions
│ │ ├── Comments
│ │ └── Approvals
```
---
# NEW CORE CONCEPTS
Add:
* Assets
* Tasks
* Artist Assignment
* Kanban Views
* Deadlines
* Task Statuses
DO NOT add:
* timesheets
* complex dependencies
* render management
* resource planning
* advanced scheduling
* Gantt charts
Keep the system intentionally lightweight.
---
# DATABASE CHANGES
## NEW ENUM: `TaskStatus`
Add:
```ts
TODO
IN_PROGRESS
REVIEW
CHANGES
DONE
```
---
## NEW ENUM: `TaskType`
Add:
```ts
TRACK
ROTO
KEY
COMP
FX
LIGHTING
RENDER
ANIMATION
MODEL
TEXTURE
RIG
LOOKDEV
GENERAL
```
Allow custom values later.
---
# NEW MODEL: `Asset`
Assets should behave similarly to shots.
Fields:
* id
* projectId
* assetCode
* name
* description
* status
* priority
* assignedLeadId
* dueDate
* createdAt
* updatedAt
Assets belong to:
* Project
Assets contain:
* Tasks
---
# NEW MODEL: `Task`
This becomes the core operational object.
Fields:
* id
* title
* description
* type
* status
* priority
* dueDate
* estimatedHours
* sortOrder
* shotId (nullable)
* assetId (nullable)
* assignedArtistId (nullable)
* createdById
* createdAt
* updatedAt
Rules:
* task belongs to either:
* a Shot
* or an Asset
* never both
Tasks can contain:
* Versions
* Comments
* Approvals
IMPORTANT:
Refactor existing Version model:
* versions should optionally belong to a Task
* NOT only a Shot
This is critical.
---
# VERSION REFACTOR
Currently:
```plaintext id="vw7z0h"
Shot -> Versions
```
Refactor to:
```plaintext id="7wfp9e"
Task -> Versions
```
Reason:
The review process is task-specific.
Example:
```plaintext id="x4fq6o"
SH010
├── Track Task
│ └── Versions
├── Roto Task
│ └── Versions
└── Comp Task
└── Versions
```
This massively improves production clarity.
Still allow:
* shot-level overview
* latest task version summary
---
# TASK WORKFLOW
Tasks should support:
* assignment
* deadlines
* uploads
* review
* approvals
Simple lifecycle:
```plaintext id="y8y95u"
TODO
→ IN_PROGRESS
→ REVIEW
→ CHANGES
→ DONE
```
---
# KANBAN BOARD
Implement lightweight kanban production views.
Views:
* By Project
* By Shot
* By Asset
* By Artist
Columns:
* Todo
* In Progress
* Review
* Changes
* Done
Cards should display:
* task title
* shot/asset code
* assigned artist
* due date
* latest version
* comment count
* approval state
Support:
* drag and drop
* optimistic updates
* instant status changes
Use:
* dnd-kit
NOT:
* giant enterprise scheduling systems
---
# NEW ROUTES
## Dashboard
Add:
```plaintext id="pwttmf"
/tasks
/tasks/[taskId]
```
---
## Project Views
Extend:
```plaintext id="6yq0o5"
/projects/[id]
```
Add tabs:
* Shots
* Assets
* Tasks
* Kanban
* Activity
---
## Asset Views
Add:
```plaintext id="y5xj4q"
/projects/[id]/assets/[assetId]
```
---
## Task Views
Add:
```plaintext id="g3fcdj"
/tasks/[taskId]
```
Task page should contain:
* task details
* status
* assignment
* uploads
* comments
* review player
* annotations
* approval history
Essentially:
task page = review page + production metadata
---
# REVIEW SYSTEM INTEGRATION
DO NOT duplicate review systems.
Existing:
* review player
* comments
* annotations
* approvals
should now attach to:
* Task Versions
The review player remains mostly unchanged.
---
# VERSION UPLOAD FLOW
New upload flow:
```plaintext id="v3r0xy"
Project
→ Shot / Asset
→ Task
→ Upload Version
```
Version uploads should:
* automatically increment version number
* optionally notify assigned reviewers
* optionally move task to REVIEW
---
# TASK CREATION UX
Allow:
* manual task creation
* templates
* quick-add buttons
Example:
For shots:
* Add Track
* Add Roto
* Add Comp
For assets:
* Add Model
* Add Texture
* Add Rig
---
# ARTIST ASSIGNMENTS
Tasks should support:
* assigned artist
* assigned supervisor
* watcher/follower users
Add lightweight workload views:
* my tasks
* due this week
* overdue
* awaiting review
---
# DASHBOARD IMPROVEMENTS
Add widgets:
* Tasks Due Today
* Tasks In Review
* Overdue Tasks
* Latest Uploads
* Recent Feedback
* Artist Workload
---
# NOTIFICATIONS
Extend notification system.
New notification types:
```ts
TASK_ASSIGNED
TASK_OVERDUE
TASK_APPROVED
TASK_CHANGES_REQUESTED
TASK_READY_FOR_REVIEW
```
Slack examples:
```plaintext id="hjlwmz"
SH010 COMP task ready for review
```
```plaintext id="64q9vx"
ASSET_CAR01 MODEL task approved
```
---
# PERMISSIONS
Maintain current auth architecture.
Permissions:
* ADMIN/PRODUCER/SUPERVISOR:
full task control
* ARTIST:
view assigned tasks
upload versions
comment
* CLIENT:
review approved review sessions only
Clients should NEVER see:
* kanban
* production internals
* task assignments
---
# UI REQUIREMENTS
The UI should feel:
* modern
* dark-mode first
* fast
* clean
* film-production oriented
Inspiration:
* Linear
* Trello
* Frame.io
* ShotGrid (but MUCH simpler)
---
# IMPORTANT PRODUCT DIRECTION
This should feel like:
“Trello + Frame.io specifically for boutique VFX studios.”
NOT:
“Enterprise production software.”
Keep:
* interactions fast
* layouts uncluttered
* onboarding minimal
---
---
# CLIENT REVIEW SHARING FLOW
Add a lightweight “Share With Client” workflow directly into the production/review system.
The goal is:
* one-click client sharing
* minimal friction
* no complicated publishing workflows
* tightly integrated into task review
This should feel extremely simple for producers/supervisors.
---
# CORE CONCEPT
A task version can move through two review stages:
```plaintext id="y5ibk0"
Internal Review
→ Client Review
→ Approved / Changes
```
When a user clicks:
```plaintext id="l5l90p"
Share With Client
```
the system should:
* mark the task/version as ready for client review
* expose the version in the client portal
* optionally notify the client
* generate/share a review link if needed
IMPORTANT:
Do NOT require duplicate uploads or separate publish steps.
The uploaded task version itself becomes the client review version.
---
# NEW TASK STATUS
Extend `TaskStatus` enum:
```ts id="z1vc6r"
TODO
IN_PROGRESS
INTERNAL_REVIEW
CLIENT_REVIEW
CHANGES
DONE
```
This mirrors actual VFX review flow more accurately.
---
# SHARE WITH CLIENT BUTTON
Add a prominent:
```plaintext id="mqkn6v"
Share With Client
```
button in multiple locations.
## PRIMARY LOCATION
Inside the internal review player page:
```plaintext id="m1sjc9"
/review/[versionId]
```
This is the most important placement.
Supervisors reviewing a version internally should be able to immediately push it to client review.
---
## ADDITIONAL LOCATIONS
Add button/action in:
* task detail page
* version list rows
* kanban task cards
* project shot overview
* latest version cards
Use:
* dropdown action menu
* quick action button
* contextual right-click menu where appropriate
---
# SHARE FLOW
When clicked:
## IF NO ACTIVE CLIENT REVIEW SESSION EXISTS
Prompt:
```plaintext id="4v0j9h"
Create review link for client?
```
Allow:
* create new tokenized review session
* select existing review session
* choose expiry date
* optional password later
* optional email send
---
## IF REVIEW SESSION EXISTS
Immediately:
* mark version as client-visible
* move task to CLIENT_REVIEW
* notify client if enabled
---
# VERSION VISIBILITY
Add fields to `Version`:
```ts id="e88z4o"
isClientVisible Boolean @default(false)
sharedAt DateTime?
sharedById String?
```
Only versions with:
```plaintext id="vlfvhy"
isClientVisible = true
```
appear in client portal APIs.
This is MUCH cleaner than relying only on shot status.
---
# CLIENT REVIEW RULES
Clients should ONLY see:
* explicitly shared versions
* latest shared version by default
Clients should NEVER see:
* internal versions
* WIP uploads
* rejected internal passes
* production notes
* kanban/task internals
---
# CLIENT REVIEW UX
When shared:
* client sees version immediately in portal
* can comment
* approve
* request changes
Client actions should:
* update task status automatically
* create notifications
* appear in activity feed
Example:
```plaintext id="yv2hfe"
Client approved SH010 COMP v004
```
Or:
```plaintext id="z61rq5"
Client requested changes on SH020 TRACK v002
```
---
# OPTIONAL EMAIL FLOW
Allow optional:
```plaintext id="jk3o5i"
Send Review Email
```
Email contains:
* project name
* shot/task name
* review link
* optional message
---
# SMART STATUS AUTOMATION
Recommended automatic transitions:
```plaintext id="mxti1g"
Upload Version
→ INTERNAL_REVIEW
Click "Share With Client"
→ CLIENT_REVIEW
Client Approves
→ DONE
Client Requests Changes
→ CHANGES
```
This keeps production flow extremely simple.
---
# UI REQUIREMENTS
The "Share With Client" action should feel:
* fast
* obvious
* production-friendly
Suggested styling:
* accent button
* paper-plane/share icon
* visible near approval controls
Avoid:
* buried menus
* multi-step publish systems
* complicated permission dialogs
---
# IMPORTANT PRODUCT DIRECTION
This feature is one of the biggest differentiators of the platform.
The ideal workflow should feel like:
```plaintext id="v5z9eo"
Artist uploads →
Supervisor reviews →
Clicks "Share With Client" →
Client reviews instantly
```
No exporting.
No re-uploading.
No external tools.
No confusion.
That simplicity is the product advantage.
---
# IMPLEMENTATION PLAN
Implement in phases.
## PHASE 1 — DATABASE & CORE MODELS
1. Add Asset model
2. Add Task model
3. Add Task enums
4. Refactor Version relationships
5. Add Prisma migrations
6. Seed example tasks/assets
---
## PHASE 2 — TASK CRUD
1. Task creation dialogs
2. Task detail page
3. Task assignment
4. Status updates
5. Due dates
6. Quick-add task templates
---
## PHASE 3 — VERSION INTEGRATION
1. Attach uploads to tasks
2. Refactor review routes
3. Task-based version history
4. Latest version indicators
---
## PHASE 4 — KANBAN
1. Build kanban board
2. Drag/drop task movement
3. Real-time updates
4. Artist filtering
5. Project filtering
---
## PHASE 5 — DASHBOARD & NOTIFICATIONS
1. Task widgets
2. Workload summaries
3. Slack updates
4. In-app notifications
5. Overdue indicators
6. Client Review button implementation
---
# IMPORTANT TECHNICAL REQUIREMENTS
Maintain:
* current auth system
* current storage abstraction
* current review functionality
* current client portal
Avoid:
* breaking existing APIs
* rewriting review logic
* giant refactors
This should be an additive evolution of the existing FeedBack architecture.
---