LinkDesk/openspec/config.yaml

71 lines
2.1 KiB
YAML

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