schema: spec-driven # Project context (optional) # This is shown to AI when creating artifacts. # Add your tech stack, conventions, style guides, domain knowledge, etc. context: | # VFX Project Management System # Similar to ftrack or ShotGrid - a comprehensive project management system for the animation and VFX industry ## Tech Stack ### Backend - FastAPI (Python web framework) - SQLAlchemy (ORM) - SQLite (Database) - JWT authentication - Pydantic (Data validation) ### Frontend - Vue.js 3 with Composition API - TypeScript - Vite (Build tool) - Tailwind CSS - shadcn-vue components - Pinia (State management) ## Domain Knowledge - Role-based access control: Admin, Director, Coordinator, Artist - Entity hierarchy: Project → Episode → Shot - Asset management with categories - Task assignment and tracking - Review and approval workflows - File upload and version control - Real-time notifications - Soft deletion for data recovery ## Conventions - API endpoints follow RESTful patterns - Database migrations use timestamp-based naming (e.g., migrate_*.py) - Test files named as test_*.py - Component naming: PascalCase for Vue components - API response format: standardized JSON with success/data/error structure - Soft deletion is the default (deleted_at timestamp) - Custom task statuses are per-project configurable ## File Structure backend/ models/ - SQLAlchemy ORM models routers/ - FastAPI route handlers schemas/ - Pydantic validation schemas services/ - Business logic layer migrate_*.py - Database migration scripts test_*.py - Test files frontend/src/ components/ - Vue components views/ - Page components stores/ - Pinia state management services/ - API services types/ - TypeScript types router/ - Vue Router configuration # Per-artifact rules (optional) # Add custom rules for specific artifacts. # Example: # rules: # proposal: # - Keep proposals under 500 words # - Always include a "Non-goals" section # tasks: # - Break tasks into chunks of max 2 hours