# Feature Spec: Tasks and Scheduling **Domain**: CultivationOps **Status**: Draft **Version**: 0.1.0 **Last Updated**: 2025-12-08 --- ## Overview The Tasks and Scheduling module enables cultivation teams to create, assign, and track recurring and one-off tasks across different room types (veg, flower, dry, facility). It provides room-based task templates, calendar and list views, and a simplified "Today / This Week" view optimized for on-shift workers. --- ## User Stories ### As a Head Grower - I want to create task templates for each room type (veg, flower, dry, facility) so that recurring operations are standardized - I want to schedule tasks on a calendar so I can visualize the workload across the week - I want to assign tasks to specific staff members so accountability is clear - I want to see task completion status so I can track progress and identify blockers ### As a Staff Member - I want to see my tasks for today in a simple list so I can complete them efficiently - I want to mark tasks as complete with notes and photos so the team has a record - I want to see upcoming tasks for the week so I can plan my time - I want to filter tasks by room or batch so I can focus on specific areas ### As a Compliance Manager - I want to see a history of completed tasks with timestamps and assignees so I can demonstrate SOP compliance - I want to export task logs for audit purposes --- ## Requirements ### Functional Requirements #### Task Templates - **Room-based templates** for: - **Veg Room**: clones, up-potting, watering schedule, IPM schedule, tagging, move-to-flower - **Flower Room**: feed schedule, IPM plan, day-21 pruning, pre-harvest deleaf, harvest and weights - **Dry/Cure**: hang, burp, transfer, packaging - **Facility**: cleaning, maintenance, "fix it" items, materials checks - Templates include: - Task name and description - Estimated duration - Required materials/tools - Instructions or SOP links - Recurrence pattern (daily, weekly, custom) #### Task Scheduling - **Calendar view** (month, week, day) - **List view** with filters: - By room - By batch - By assignee - By status (pending, in progress, complete, overdue) - **Drag-and-drop** rescheduling (calendar view) - **Bulk actions** (assign, reschedule, mark complete) #### Task Execution - **Today / This Week view** optimized for mobile/tablet: - Large tap targets - Minimal clutter - Quick complete/defer actions - **Task detail view**: - Instructions and materials - Batch/room context - Add notes and photos - Mark complete with timestamp - **Notifications** for: - Tasks due today - Overdue tasks - Newly assigned tasks #### Task History & Audit Trail - **Immutable log** of all task completions - **Metadata**: assignee, completion time, notes, photos - **Export** to CSV/JSON for compliance ### Non-Functional Requirements - **Performance**: Task list loads in < 500ms - **Offline support**: Tasks viewable offline; completion syncs when online - **Accessibility**: WCAG 2.1 AA compliant - **Mobile-first**: All workflows completable on tablet --- ## Out of Scope (v1) - Advanced project management features (dependencies, Gantt charts) - Time tracking per task (handled by Labor module) - External calendar integrations (Google Calendar, Outlook) - AI-powered task suggestions --- ## Acceptance Criteria ### Template Management - [ ] Head Grower can create a task template for each room type - [ ] Templates can be edited and versioned - [ ] Templates can be duplicated for customization ### Task Scheduling - [ ] Tasks can be created from templates or from scratch - [ ] Tasks can be assigned to specific users or roles - [ ] Calendar view displays all scheduled tasks - [ ] List view supports filtering by room, batch, assignee, status ### Task Execution - [ ] Staff can view their tasks for today in a simplified view - [ ] Staff can mark tasks complete with notes and photos - [ ] Completed tasks are logged with timestamp and assignee - [ ] Overdue tasks are highlighted ### Notifications - [ ] Users receive daily digest of tasks due today - [ ] Users receive alerts for overdue tasks - [ ] Notifications are configurable per user ### Audit & Export - [ ] Task history is immutable and timestamped - [ ] Task logs can be exported to CSV - [ ] Export includes all metadata (assignee, notes, photos) --- ## Technical Notes ### Data Model (Prisma Schema) ```prisma model TaskTemplate { id String @id @default(cuid()) name String description String? roomType RoomType estimatedDuration Int? // minutes materials String[] // array of material names instructions String? recurrence Json? // cron-like pattern createdAt DateTime @default(now()) updatedAt DateTime @updatedAt tasks Task[] } model Task { id String @id @default(cuid()) templateId String? template TaskTemplate? @relation(fields: [templateId], references: [id]) name String description String? roomId String? room Room? @relation(fields: [roomId], references: [id]) batchId String? batch Batch? @relation(fields: [batchId], references: [id]) assigneeId String? assignee User? @relation(fields: [assigneeId], references: [id]) status TaskStatus @default(PENDING) dueDate DateTime completedAt DateTime? notes String? photos String[] // URLs createdAt DateTime @default(now()) updatedAt DateTime @updatedAt } enum TaskStatus { PENDING IN_PROGRESS COMPLETE OVERDUE } enum RoomType { VEG FLOWER DRY FACILITY } ``` ### API Endpoints - `GET /api/tasks` - List tasks with filters - `GET /api/tasks/:id` - Get task detail - `POST /api/tasks` - Create task - `PATCH /api/tasks/:id` - Update task - `DELETE /api/tasks/:id` - Delete task - `POST /api/tasks/:id/complete` - Mark task complete - `GET /api/tasks/templates` - List task templates - `POST /api/tasks/templates` - Create task template - `GET /api/tasks/export` - Export task history ### UI Components - `TaskCalendar` - Calendar view with drag-and-drop - `TaskList` - Filterable list view - `TaskCard` - Task summary card - `TaskDetail` - Full task view with completion form - `TodayView` - Simplified mobile-optimized view - `TaskTemplateForm` - Template creation/editing --- ## Dependencies - **Batches and Rooms** module (for task context) - **Labor** module (for assignee data) - **Authentication** (for user assignment and audit trail) --- ## Risks & Mitigations | Risk | Impact | Mitigation | |------|--------|------------| | Template complexity overwhelms users | High | Start with simple templates; iterate based on feedback | | Offline sync conflicts | Medium | Use optimistic UI updates; clear conflict resolution UX | | Notification fatigue | Medium | Make notifications configurable; use smart batching | --- ## Future Enhancements (Post-v1) - Task dependencies and workflows - Recurring task auto-generation - Integration with external calendars - Voice-to-text for task notes - AI-powered task duration estimates