Problem
apps/mcp-server/src/tools/tasks.ts duplicates field definitions across createTaskSchema, updateTaskSchema, and bulkCreateTasksSchema (effort_score, impact_score, urgency_score, importance_score, energy_required, etc.).
Solution
- Extract reusable schema constants:
idSchema, dateSchema, scoreSchema, energySchema
- Use
.pick() / .extend() / .partial() for schema variants instead of redefining fields
- Add
.max() limits on all string fields (title: 500, notes: 10000)
- Add regex validation for date (
YYYY-MM-DD) and time (HH:MM) fields
- Add cross-field validation with
.refine() (e.g., due_time requires due_date)
Files
apps/mcp-server/src/tools/tasks.ts — refactor schemas
apps/mcp-server/src/tools/goals.ts — refactor schemas
- Consider
apps/mcp-server/src/schemas.ts for shared schema constants
Problem
apps/mcp-server/src/tools/tasks.tsduplicates field definitions acrosscreateTaskSchema,updateTaskSchema, andbulkCreateTasksSchema(effort_score, impact_score, urgency_score, importance_score, energy_required, etc.).Solution
idSchema,dateSchema,scoreSchema,energySchema.pick()/.extend()/.partial()for schema variants instead of redefining fields.max()limits on all string fields (title: 500, notes: 10000)YYYY-MM-DD) and time (HH:MM) fields.refine()(e.g.,due_timerequiresdue_date)Files
apps/mcp-server/src/tools/tasks.ts— refactor schemasapps/mcp-server/src/tools/goals.ts— refactor schemasapps/mcp-server/src/schemas.tsfor shared schema constants