Skip to main content

Variable: strictSpecMetadataSchema

const strictSpecMetadataSchema: ZodObject<{ constraints: ZodOptional<ZodArray<ZodString, "atleastone">>; contentHashes: ZodEffects<ZodRecord<ZodString, ZodString>, Record<string, string>, Record<string, string>>; context: ZodOptional<ZodArray<ZodString, "many">>; dependsOn: ZodOptional<ZodArray<ZodEffects<ZodString, string, string>, "many">>; description: ZodString; generatedBy: ZodOptional<ZodEnum<["core", "agent"]>>; keywords: ZodOptional<ZodArray<ZodString, "many">>; rules: ZodOptional<ZodArray<ZodObject<{ requirement: ZodString; rules: ZodArray<ZodString, "atleastone">; }, "strip", ZodTypeAny, { requirement: string; rules: [string, ...string[]]; }, { requirement: string; rules: [string, ...string[]]; }>, "many">>; scenarios: ZodOptional<ZodArray<ZodObject<{ given: ZodOptional<ZodArray<ZodString, "many">>; name: ZodString; requirement: ZodString; then: ZodArray<ZodString, "atleastone">; when: ZodOptional<ZodArray<ZodString, "many">>; }, "strip", ZodTypeAny, { given?: string[]; name: string; requirement: string; then: [string, ...string[]]; when?: string[]; }, { given?: string[]; name: string; requirement: string; then: [string, ...string[]]; when?: string[]; }>, "many">>; title: ZodString; }, "passthrough", ZodTypeAny, objectOutputType<{ constraints: ZodOptional<ZodArray<ZodString, "atleastone">>; contentHashes: ZodEffects<ZodRecord<ZodString, ZodString>, Record<string, string>, Record<string, string>>; context: ZodOptional<ZodArray<ZodString, "many">>; dependsOn: ZodOptional<ZodArray<ZodEffects<ZodString, string, string>, "many">>; description: ZodString; generatedBy: ZodOptional<ZodEnum<["core", "agent"]>>; keywords: ZodOptional<ZodArray<ZodString, "many">>; rules: ZodOptional<ZodArray<ZodObject<{ requirement: ZodString; rules: ZodArray<ZodString, "atleastone">; }, "strip", ZodTypeAny, { requirement: string; rules: [string, ...string[]]; }, { requirement: string; rules: [string, ...string[]]; }>, "many">>; scenarios: ZodOptional<ZodArray<ZodObject<{ given: ZodOptional<ZodArray<ZodString, "many">>; name: ZodString; requirement: ZodString; then: ZodArray<ZodString, "atleastone">; when: ZodOptional<ZodArray<ZodString, "many">>; }, "strip", ZodTypeAny, { given?: string[]; name: string; requirement: string; then: [string, ...string[]]; when?: string[]; }, { given?: string[]; name: string; requirement: string; then: [string, ...string[]]; when?: string[]; }>, "many">>; title: ZodString; }, ZodTypeAny, "passthrough">, objectInputType<{ constraints: ZodOptional<ZodArray<ZodString, "atleastone">>; contentHashes: ZodEffects<ZodRecord<ZodString, ZodString>, Record<string, string>, Record<string, string>>; context: ZodOptional<ZodArray<ZodString, "many">>; dependsOn: ZodOptional<ZodArray<ZodEffects<ZodString, string, string>, "many">>; description: ZodString; generatedBy: ZodOptional<ZodEnum<["core", "agent"]>>; keywords: ZodOptional<ZodArray<ZodString, "many">>; rules: ZodOptional<ZodArray<ZodObject<{ requirement: ZodString; rules: ZodArray<ZodString, "atleastone">; }, "strip", ZodTypeAny, { requirement: string; rules: [string, ...string[]]; }, { requirement: string; rules: [string, ...string[]]; }>, "many">>; scenarios: ZodOptional<ZodArray<ZodObject<{ given: ZodOptional<ZodArray<ZodString, "many">>; name: ZodString; requirement: ZodString; then: ZodArray<ZodString, "atleastone">; when: ZodOptional<ZodArray<ZodString, "many">>; }, "strip", ZodTypeAny, { given?: string[]; name: string; requirement: string; then: [string, ...string[]]; when?: string[]; }, { given?: string[]; name: string; requirement: string; then: [string, ...string[]]; when?: string[]; }>, "many">>; title: ZodString; }, ZodTypeAny, "passthrough">>

Defined in: packages/core/src/domain/services/parse-metadata.ts:62

Strict schema for writing metadata.json — used by SaveSpecMetadata. title and description are required; other fields are optional but validated when present.