Instruction file imported from mcgarciawq/unir-ia (
.github/instructions/models.instructions.md). Copyright stays with the author.
Task Entity Technical Specification
Strictly implement the Task domain model and shared enums:
id: int (Primary Key)title: strdescription: str (Long text; may be empty before/ai/tasks/describe)priority:PriorityEnum(low, medium, high, blocking)effort_hours: float (estimated hours; may be 0 before/ai/tasks/estimate)status:StatusEnum(pending, in_progress, blocked, in_review, completed)assigned_to: str (Team member name)category:strorCategoryEnum(e.g. Frontend, Backend, Testing, Infra; empty before/ai/tasks/categorize)risk_analysis: str (long text; empty until/ai/tasks/audit)risk_mitigation: str (long text; empty until/ai/tasks/audit)
Enums
- Add
CategoryEnuminsrc/models/enums.pywith at least:frontend,backend,testing,infra(extend if needed). - Share
PriorityEnum,StatusEnum, andCategoryEnumbetween domain model and Pydantic schemas.
Required Methods
to_dict(self) -> dict: Convert theTaskinstance into a dictionary for JSON serialization.from_dict(cls, data: dict): Class method to instantiate aTaskfrom a dictionary.- Backward compatibility: If
category,risk_analysis, orrisk_mitigationare missing in legacytasks.json, default to""(empty string).
Validation
- Use Pydantic
BaseModelschemas insrc/models/schemas.pyfor CRUD and AI request bodies and all API request bodies. - Provide optional-field or dedicated schemas for AI endpoints (e.g.
TaskDescribeRequestwithout requireddescription). - Ensure enum values serialize as plain strings in JSON.