{"record":{"id":"f71c07e7f450dbce","repo":"JuliusBrussee/caveman","slug":"agent-conformance-fixtures-must-cover-claude-and-p","errorCode":null,"errorMessage":"agent conformance fixtures must cover claude and pi","messagePattern":"agent conformance fixtures must cover claude and pi","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/shared/contracts/scripts/validate-schemas.mjs","lineNumber":62,"sourceCode":"const fixtures = await Promise.all(\n  fixtureFiles.map(async (file) => JSON.parse(await readFile(path.join(agentFixtureRoot, file), \"utf8\"))),\n);\nconst validateAdapterConformance = ajv.getSchema(\n  \"https://caveman.so/schemas/adapter-conformance.schema.json\",\n);\nif (!validateAdapterConformance) {\n  throw new Error(\"adapter conformance schema failed to compile\");\n}\nfor (const [index, fixture] of fixtures.entries()) {\n  if (!validateAdapterConformance(fixture)) {\n    throw new Error(\n      `${fixtureFiles[index]}: ${ajv.errorsText(validateAdapterConformance.errors)}`,\n    );\n  }\n}\nconst [claude, pi] = fixtures;\nif (claude.harness !== \"claude\" || pi.harness !== \"pi\") {\n  throw new Error(\"agent conformance fixtures must cover claude and pi\");\n}\n\nfor (const key of [\n  \"normalized_context_digest\",\n  \"plan_sha256\",\n  \"ordered_transform_ids\",\n  \"provider_visible_digest\",\n  \"recovery_handles\",\n  \"accounting_method\",\n  \"failure_fallback\",\n]) {\n  if (JSON.stringify(claude[key]) !== JSON.stringify(pi[key])) {\n    throw new Error(`agent conformance mismatch: ${key}`);\n  }\n}\nif (claude.build_sha256 === pi.build_sha256) {\n  throw new Error(\"adapter-specific build_sha256 values must differ\");\n}","sourceCodeStart":44,"sourceCodeEnd":80,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/packages/shared/contracts/scripts/validate-schemas.mjs#L44-L80","documentation":"Error \"agent conformance fixtures must cover claude and pi\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at packages/shared/contracts/scripts/validate-schemas.mjs:62 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Provide conformance fixtures covering both claude and pi."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"27d5a3981a347890211bb1bf2439e5c821a63bc9","analyzedAt":"2026-08-15T09:26:11.751Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}