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

6.3 KiB

The current architecture has a conceptual problem around:

  • shots
  • tasks
  • versions
  • approvals
  • client review visibility

We need to refactor the production/review workflow so that TASKS become the true operational and review unit.

IMPORTANT: Do NOT redesign the whole app. This is a workflow/data relationship correction and cleanup.

The goal is:

  • clearer production flow
  • correct review behavior
  • correct client review visibility
  • correct kanban behavior
  • proper task-based versioning

CORE ARCHITECTURAL DECISION

A SHOT is:

  • a container/grouping
  • a production entity
  • NOT directly reviewable

A TASK is:

  • the actual work unit
  • the review unit
  • the approval unit
  • the kanban unit
  • the upload/version unit

This means:

Shot
 ├── Track Task
 │     └── Versions
 │
 ├── Roto Task
 │     └── Versions
 │
 └── Comp Task
       └── Versions

NOT:

Shot
 └── Versions

That old structure is incorrect.


REQUIRED REFACTOR

1. VERSIONS MUST BELONG TO TASKS

Currently:

Shot -> Versions

Refactor to:

Task -> Versions

A version upload must ALWAYS belong to:

  • exactly one task

Remove the concept of:

  • "shot latest version"

Instead:

  • each task has its own latest version

Examples:

SH010
 ├── Track Task
 │     └── latest: v003
 │
 ├── Roto Task
 │     └── latest: v005
 │
 └── Comp Task
       └── latest: v008

This is the correct production model.


2. SHOTS SHOULD NOT DIRECTLY DRIVE CLIENT REVIEW

Currently:

  • shot status = CLIENT_REVIEW
  • portal shows latest uploaded version
  • task context lost

This is incorrect.

Client review should be TASK-BASED.


NEW CLIENT REVIEW RULE

The client portal should display:

Tasks
  where latest version is marked:
    isClientVisible = true

NOT:

Shots where shot.status = CLIENT_REVIEW

This fixes:

  • incorrect versions
  • missing task context
  • review ambiguity

CLIENT PORTAL SHOULD SHOW

Instead of:

SH010

Show:

SH010 — COMP
v008

Or:

SH010 — ROTO
v005

Clients review TASK DELIVERABLES.

Not abstract shots.


3. SHOT STATUS SHOULD BE DERIVED, NOT MANUALLY DRIVEN

Current shot statuses:

WAITING
IN_PROGRESS
INTERNAL_REVIEW
CLIENT_REVIEW
REVISIONS
APPROVED
FINAL

This is creating confusion because:

  • shots are containers
  • tasks are actual workflow units

Refactor shot statuses to be:

  • simplified
  • mostly derived automatically from task states

NEW SHOT STATUS MODEL

Reduce shot statuses to:

WAITING
IN_PROGRESS
IN_REVIEW
REVISIONS
COMPLETE

Definitions:

WAITING

No active tasks started.

IN_PROGRESS

At least one task is:

  • TODO
  • IN_PROGRESS

IN_REVIEW

At least one task is:

  • INTERNAL_REVIEW
  • CLIENT_REVIEW

REVISIONS

At least one task is:

  • CHANGES

COMPLETE

All tasks are:

  • DONE

IMPORTANT: Shot status should mostly be AUTO-CALCULATED from tasks.

NOT manually set constantly.


4. REMOVE "FINAL"

The current:

APPROVED
FINAL

is redundant/confusing.

Recommendation: REMOVE FINAL.

Use:

DONE

at task level.

And:

COMPLETE

at shot level.

Cleaner. Much easier mentally.


5. TASK STATUS IS THE TRUE KANBAN STATUS

Task statuses should drive:

  • kanban columns
  • review state
  • client review state

Task statuses:

TODO
IN_PROGRESS
INTERNAL_REVIEW
CLIENT_REVIEW
CHANGES
DONE

These statuses represent:

  • actual workflow state
  • actual review state

6. REVIEW FLOW RULES

Upload Version

When artist uploads new version:

Task → INTERNAL_REVIEW

Kanban card moves automatically:

IN_PROGRESS
→ INTERNAL_REVIEW

Supervisor Shares With Client

When clicking:

Share With Client

System should:

  • mark latest version: isClientVisible = true
  • set task status: CLIENT_REVIEW

Kanban updates automatically:

INTERNAL_REVIEW
→ CLIENT_REVIEW

Client Approves

Client approval should:

  • approve ONLY the task
  • NOT the entire shot

System:

Task.status = DONE
Version.approvalStatus = APPROVED

Kanban:

CLIENT_REVIEW
→ DONE

Client Requests Changes

System:

Task.status = CHANGES
Version.approvalStatus = NEEDS_CHANGES

Kanban:

CLIENT_REVIEW
→ CHANGES

7. SHOT COMPLETION RULE

A shot becomes:

COMPLETE

ONLY when:

ALL TASKS == DONE

Example:

SH010
 ├── Track → DONE
 ├── Roto → DONE
 └── Comp → DONE

=> Shot COMPLETE

8. CLIENT PORTAL STRUCTURE

Refactor client portal to show:

Project
 ├── Shot
 │     ├── Task
 │     │     └── Latest Shared Version

Example UI:

SH010
  COMP — v008
  ROTO — v005

SH020
  COMP — v003

This is MUCH clearer.


9. TASK DETAIL PAGE SHOULD BECOME PRIMARY REVIEW HUB

Task page should become:

  • upload page
  • review page
  • approval page
  • history page

Structure:

/tasks/[taskId]

Contains:

  • task info
  • latest version
  • version history
  • comments
  • annotations
  • approvals
  • review actions

10. IMPORTANT IMPLEMENTATION NOTES

DO NOT:

  • rewrite comment system
  • rewrite annotation system
  • rewrite player

JUST:

  • move relationships from Shot → Task
  • update logic
  • update queries
  • update review flow

This is mostly:

  • schema cleanup
  • workflow cleanup
  • state cleanup

IMPORTANT PRODUCT PRINCIPLE

The production hierarchy should now be:

Project
 → Shot
   → Task
     → Version
       → Comments / Annotations / Approvals

NOT:

Project
 → Shot
   → Version

That distinction fixes nearly all current workflow inconsistencies.