26 lines
987 B
Markdown
26 lines
987 B
Markdown
|
|
# Task ID: 125
|
||
|
|
|
||
|
|
**Title:** Epic zod validation schemas
|
||
|
|
|
||
|
|
**Status:** pending
|
||
|
|
|
||
|
|
**Dependencies:** 117
|
||
|
|
|
||
|
|
**Priority:** medium
|
||
|
|
|
||
|
|
**Description:** Create Epic validation schemas in src/mcpd/src/validation/ for request/response validation
|
||
|
|
|
||
|
|
**Details:**
|
||
|
|
|
||
|
|
Create src/mcpd/src/validation/epic.schema.ts:
|
||
|
|
1. DoneCriterionSchema: z.object({ id: z.string(), text: z.string(), kind: z.enum(['outcome', 'quality']), met: z.boolean() })
|
||
|
|
2. AcceptedTradeoffSchema: z.object({ what: z.string(), why: z.string(), who: z.string(), deScopedBy: z.string().optional(), at: z.string() })
|
||
|
|
3. CreateEpicSchema: name, content, doneCriteria (array), projectId or project (name), description optional
|
||
|
|
4. UpdateEpicSchema: partial of create fields plus status
|
||
|
|
5. EpicResponseSchema for API responses
|
||
|
|
6. Follow prompt.schema.ts patterns
|
||
|
|
|
||
|
|
**Test Strategy:**
|
||
|
|
|
||
|
|
Unit tests: validate CreateEpicSchema accepts valid input, rejects missing required fields, validates doneCriteria array structure, validates status enum values.
|