task-models.prismaβ’5.9 kB
// ===== CORE TASK MANAGEMENT MODELS =====
// Core models for task lifecycle management
model Task {
id Int @id @default(autoincrement())
name String
slug String? @unique // Human-readable slug for task identification
status String @default("not-started")
completionDate DateTime?
owner String @default("product-manager")
currentMode String @default("product-manager")
priority String @default("Medium")
dependencies Json @default("[]")
redelegationCount Int @default(0)
gitBranch String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// Relationships
taskDescription TaskDescription?
subtasks Subtask[]
delegationRecords DelegationRecord[]
researchReports ResearchReport[]
codeReviews CodeReview[]
completionReports CompletionReport[]
codebaseAnalysis CodebaseAnalysis?
workflowExecutions WorkflowExecution[]
@@index([status])
@@index([owner])
@@index([currentMode])
@@index([priority])
@@index([slug])
@@map("tasks")
}
model TaskDescription {
id Int @id @default(autoincrement())
taskId Int @unique
description String
businessRequirements String
technicalRequirements String
acceptanceCriteria Json // JSON array of acceptance criteria
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
task Task @relation(fields: [taskId], references: [id])
@@map("task_descriptions")
}
model Subtask {
id Int @id @default(autoincrement())
taskId Int
name String
description String
sequenceNumber Int
status String @default("not-started")
batchId String? // For grouping related subtasks
batchTitle String? // Human-readable batch title
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
// CORE ESSENTIALS: Only the most critical fields for workflow execution
// Implementation guidance - consolidated into single field
implementationApproach String? // Detailed approach and technical specifications
// Quality validation
acceptanceCriteria Json? // Acceptance criteria for validation
// Completion tracking
completionEvidence Json? // Evidence of completion for quality validation
task Task @relation(fields: [taskId], references: [id])
@@index([taskId])
@@index([status])
@@index([batchId])
@@index([sequenceNumber])
@@map("subtasks")
}
model DelegationRecord {
id Int @id @default(autoincrement())
taskId Int
fromMode String
toMode String
delegationTimestamp DateTime @default(now())
message String?
task Task @relation(fields: [taskId], references: [id])
@@index([taskId])
@@index([fromMode])
@@index([toMode])
@@map("delegation_records")
}
model ResearchReport {
id Int @id @default(autoincrement())
taskId Int
title String
summary String
findings String
recommendations String
references Json // JSON array of references
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
task Task @relation(fields: [taskId], references: [id])
@@map("research_reports")
}
model CodeReview {
id Int @id @default(autoincrement())
taskId Int
status String // APPROVED, APPROVED_WITH_RESERVATIONS, NEEDS_CHANGES
summary String
strengths String
issues String
acceptanceCriteriaVerification Json
manualTestingResults String
requiredChanges String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
task Task @relation(fields: [taskId], references: [id])
@@map("code_reviews")
}
model CompletionReport {
id Int @id @default(autoincrement())
taskId Int
summary String
filesModified Json // JSON array of files modified
delegationSummary String
acceptanceCriteriaVerification Json
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
task Task @relation(fields: [taskId], references: [id])
@@map("completion_reports")
}
// CodebaseAnalysis model for storing structured codebase analysis results
// Critical for maintaining consistency across roles and preventing re-analysis
model CodebaseAnalysis {
id Int @id @default(autoincrement())
taskId Int @unique
// Analysis Content - JSON fields for structured data
architectureFindings Json // Current patterns, tech stack, file structure, dependencies
problemsIdentified Json // Issues found, root causes, impact assessment, technical debt
implementationContext Json // Existing patterns, coding standards, quality guidelines
qualityAssessment Json // Code quality metrics, testing coverage, documentation state
// Additional Context
filesCovered Json // Array of files analyzed with their roles and importance
technologyStack Json // Detailed tech stack with versions and usage patterns
// Metadata
analyzedAt DateTime @default(now())
updatedAt DateTime @updatedAt
analyzedBy String // Role that performed the analysis (product-manager, architect, etc.)
analysisVersion String @default("1.0") // For tracking analysis evolution
task Task @relation(fields: [taskId], references: [id])
@@index([taskId])
@@index([analyzedBy])
@@map("codebase_analysis")
}