santifer/career-ops · error · Error
missing replay fixture: ${fixture} — record it or run --live
Error message
missing replay fixture: ${fixture} — record it or run --live What it means
Error "missing replay fixture: ${fixture} — record it or run --live" thrown in santifer/career-ops.
Source
Thrown at eval-golden.mjs:145
/**
* Return the candidate model's raw evaluation text for one golden case.
*
* In replay mode this reads a recorded fixture so the gate is offline and
* deterministic; in live mode it shells out to openai-eval.mjs, reusing the
* real prompt-assembly path rather than duplicating it here.
*
* @param {{id: string, jd: string}} testCase - The golden case being run.
* @returns {string} Raw model output (expected to contain a SCORE_SUMMARY block).
*/
function getCompletion(testCase) {
if (mode === 'replay') {
// Slash-form provider ids (e.g. "deepseek/deepseek-chat") must not become
// path separators, or the fixture lands in a phantom subdirectory. Sanitize
// to a flat filename — record fixtures under the same sanitized name.
const fixture = join(fixtureDir, `${testCase.id}__${fixtureModelId(model)}.txt`);
if (!existsSync(fixture)) {
throw new Error(`missing replay fixture: ${fixture} — record it or run --live`);
}
return readFileSync(fixture, 'utf8');
}
// live: write the JD to a temp file and run the existing evaluator.
const dir = mkdtempSync(join(tmpdir(), 'eval-golden-'));
try {
const jdFile = join(dir, 'jd.txt');
writeFileSync(jdFile, testCase.jd);
const res = spawnSync(process.execPath,
[join(ROOT, 'openai-eval.mjs'), '--file', jdFile, '--model', model, '--no-save'],
{ encoding: 'utf8', env: process.env, timeout: 360000 });
if (res.status !== 0) {
throw new Error(`openai-eval.mjs exited ${res.status}: ${(res.stderr || '').slice(0, 200)}`);
}
return res.stdout || '';
} finally {
rmSync(dir, { recursive: true, force: true });View on GitHub (pinned to 9b17a8ac97)
Solutions
- Record the missing fixture by running eval-golden.mjs in record mode.
- Or run with --live to evaluate against the live model instead of the replay fixture.
Example fix
node eval-golden.mjs --live
When it happens
Trigger: Thrown at eval-golden.mjs:145 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of santifer/career-ops@9b17a8ac97 (2026-08-13).
Data as JSON: /api/errors/9b3f9328f2396074.
Report an issue: GitHub.