Spaces:
Sleeping
Sleeping
File size: 2,015 Bytes
0e13326 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | import { z } from 'zod'
export const BandSchema = z.enum(['elite', 'high', 'medium', 'low'])
export const MetricsInputSchema = z.object({
deploymentFrequency: z.enum(['multiple_per_day', 'daily', 'weekly', 'monthly', 'less_than_monthly']),
leadTimeDays: z.number().nonnegative(),
changeFailureRate: z.number().min(0).max(100),
mttrHours: z.number().nonnegative(),
pipelineDurationMinutes: z.number().nonnegative(),
prReviewTimeHours: z.number().nonnegative(),
engineerCount: z.number().int().positive(),
serviceCount: z.number().int().positive(),
})
export const TeamContextSchema = z.object({
architecture: z.enum(['monolith', 'microservices', 'hybrid']),
releaseStrategy: z.enum(['continuous', 'scheduled', 'mixed']),
hasComplianceConstraints: z.boolean(),
})
export const InterpretationReportSchema = z.object({
deliveryProfile: z.string().min(1),
benchmarkAlignment: z.array(z.object({
metric: z.string().min(1),
yourValue: z.string().min(1),
typicalRange: z.string().min(1),
band: BandSchema,
})),
likelyBottlenecks: z.array(z.string().min(1)),
improvements: z.array(z.object({
priority: z.number().int().positive(),
action: z.string().min(1),
rationale: z.string().min(1),
})),
leadershipSummary: z.object({
deliverySpeed: z.enum(['strong', 'moderate', 'weak']),
reliability: z.enum(['strong', 'moderate', 'weak']),
focusArea: z.string().min(1),
}),
})
export const BenchmarkTierSchema = z.object({
elite: z.string(),
high: z.string(),
medium: z.string(),
low: z.string(),
})
export const BenchmarkPatternSchema = z.object({
id: z.string(),
signature: z.string(),
interpretation: z.string(),
improvements: z.array(z.string()),
})
export const BenchmarkDataSchema = z.object({
deploymentFrequency: BenchmarkTierSchema,
leadTime: BenchmarkTierSchema,
changeFailureRate: BenchmarkTierSchema,
mttr: BenchmarkTierSchema,
patterns: z.array(BenchmarkPatternSchema),
keyInsights: z.array(z.string()),
})
|