fix(schema): enforce 4-digit ids
This commit is contained in:
parent
c00ec16c84
commit
2b5696de82
@ -8,7 +8,7 @@ export const Role = z.enum(['architect', 'implementer', 'reviewer', 'tester']);
|
||||
export const DelegationMode = z.enum(['manual', 'suggest', 'auto']);
|
||||
|
||||
export const TaskSchema = z.object({
|
||||
id: z.string().regex(/^TSK-\d+$/),
|
||||
id: z.string().regex(/^TSK-\d{4}$/),
|
||||
title: z.string().min(1),
|
||||
description: z.string().default(''),
|
||||
status: TaskStatus,
|
||||
@ -24,7 +24,7 @@ export const TaskSchema = z.object({
|
||||
});
|
||||
|
||||
export const HandoffSchema = z.object({
|
||||
id: z.string().regex(/^HOF-\d+$/),
|
||||
id: z.string().regex(/^HOF-\d{4}$/),
|
||||
fromRole: z.string().min(1),
|
||||
toRole: z.string().min(1),
|
||||
fromAgent: z.string().optional(),
|
||||
@ -39,7 +39,7 @@ export const HandoffSchema = z.object({
|
||||
});
|
||||
|
||||
export const DecisionSchema = z.object({
|
||||
id: z.string().regex(/^DEC-\d+$/),
|
||||
id: z.string().regex(/^DEC-\d{4}$/),
|
||||
title: z.string().min(1),
|
||||
status: DecisionStatus.default('accepted'),
|
||||
context: z.string().default(''),
|
||||
|
||||
@ -25,4 +25,16 @@ describe('schemas', () => {
|
||||
});
|
||||
expect(result.success).toBe(false);
|
||||
});
|
||||
|
||||
it('rejects a task id without exactly 4 digits', () => {
|
||||
const result = TaskSchema.safeParse({
|
||||
id: 'TSK-1',
|
||||
title: 'Implement DNS cache',
|
||||
description: '',
|
||||
status: 'open',
|
||||
createdAt: '2026-06-24T10:00:00Z',
|
||||
updatedAt: '2026-06-24T10:00:00Z',
|
||||
});
|
||||
expect(result.success).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user