{"record":{"id":"8aaa5e6c9bb3b5f3","repo":"ruvnet/ruflo","slug":"frozen-human-eval-set-not-found-frozen-human-ev","errorCode":null,"errorMessage":"frozen human eval set not found (${FROZEN_HUMAN_EVAL_FILE})","messagePattern":"frozen human eval set not found \\((.+?)\\)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"v3/@claude-flow/cli/src/services/harness-frozen-eval.ts","lineNumber":61,"sourceCode":"function locate(): string | null {\n  const candidates: string[] = [];\n  try {\n    const req = createRequire(import.meta.url);\n    candidates.push(path.join(path.dirname(req.resolve('@claude-flow/cli/package.json')), FROZEN_HUMAN_EVAL_FILE));\n  } catch { /* not resolvable in this context */ }\n  candidates.push(path.resolve(__dirname, '..', '..', '..', FROZEN_HUMAN_EVAL_FILE)); // dist/src/services → pkg root\n  candidates.push(path.resolve(__dirname, '..', '..', FROZEN_HUMAN_EVAL_FILE));        // src/services → pkg root\n  for (const c of candidates) if (fs.existsSync(c)) return c;\n  return null;\n}\n\n/**\n * Load + verify the frozen human eval set. Throws if missing or if its content\n * hash != the pinned FROZEN_HUMAN_EVAL_HASH (the \"frozen\" guarantee).\n */\nexport function loadFrozenHumanEval(): FrozenHumanEval {\n  const p = locate();\n  if (!p) throw new Error(`frozen human eval set not found (${FROZEN_HUMAN_EVAL_FILE})`);\n  const parsed = JSON.parse(fs.readFileSync(p, 'utf-8')) as { version?: string; tasks?: HumanEvalTask[] };\n  const tasks = parsed.tasks ?? [];\n  const corpusHash = humanEvalHash(tasks);\n  if (corpusHash !== FROZEN_HUMAN_EVAL_HASH) {\n    throw new Error(`frozen human eval hash mismatch — set has drifted (got ${corpusHash}, pinned ${FROZEN_HUMAN_EVAL_HASH}); supersede with a new versioned file, do not edit`);\n  }\n  return { version: parsed.version ?? FROZEN_HUMAN_EVAL_VERSION, tasks, corpusHash };\n}\n","sourceCodeStart":43,"sourceCodeEnd":70,"githubUrl":"https://github.com/ruvnet/ruflo/blob/6b01dc5a687b26b3e218f796de45ec51f8fa9e8c/v3/@claude-flow/cli/src/services/harness-frozen-eval.ts#L43-L70","documentation":"Thrown by loadFrozenHumanEval() when the frozen human-relevance eval set file (.claude/eval/human-relevance-frozen-v1.json) cannot be located via any candidate path: package-resolve, dist-relative, or src-relative. This file is the anti-overfitting anchor the flywheel must never regress on; downstream/foreign projects must supply their own anchor instead.","triggerScenarios":"Calling loadFrozenHumanEval() outside the @claude-flow/cli package (e.g. a downstream repo) without a project-local anchor; a partial/corrupted package install where the eval file is missing; running from a stripped dist build that excluded the .claude/eval assets.","commonSituations":"A downstream repository running the flywheel without creating .claude/eval/flywheel-anchor.manifest.json; an npm install --omit=optional or a bundler that tree-shook the eval file; running from source after the file was git-ignored or deleted.","solutions":["For downstream projects: create .claude/eval/flywheel-anchor.manifest.json pointing at your own labelled tasks (see harness-project-anchor.ts).","Reinstall the package fully: npm install @claude-flow/cli (ensure the .claude/eval asset is present).","If running inside the ruflo/claude-flow repo itself, restore the file from git.","Set RUFLO_FLYWHEEL_ALLOW_BUILTIN_ANCHOR=1 only if you intentionally want the built-in set in a non-ruflo repo."],"exampleFix":"# downstream project: create a project-local anchor manifest\ncat > .claude/eval/flywheel-anchor.manifest.json <<EOF\n{\n  \"schemaVersion\": \"ruflo.flywheel-anchor-manifest/v1\",\n  \"path\": \"./eval/my-tasks.json\",\n  \"sha256\": \"sha256:<hash-of-my-tasks.json>\"\n}\nEOF","handlingStrategy":"try-catch","validationCode":"import { existsSync } from 'fs';\nfunction frozenEvalAvailable(): boolean {\n  // mirror the locate() candidate paths\n  return existsSync(require.resolve('@claude-flow/cli/package.json'));\n}\nif (!frozenEvalAvailable() && !existsSync('.claude/eval/flywheel-anchor.manifest.json')) {\n  throw new Error('no eval anchor available — create .claude/eval/flywheel-anchor.manifest.json');\n}","typeGuard":null,"tryCatchPattern":"try {\n  loadFrozenHumanEval();\n} catch (e) {\n  if (e instanceof Error && /frozen human eval set not found/.test(e.message)) {\n    // fall back to project-local anchor instead\n    loadEffectiveFlywheelAnchor(process.cwd());\n  } else throw e;\n}","preventionTips":["Downstream projects: always create .claude/eval/flywheel-anchor.manifest.json.","Verify the package installed the .claude/eval asset after install.","Pin the @claude-flow/cli version so the eval file hash matches."],"tags":["filesystem","eval","configuration","missing-file","anchor"],"backgroundTag":null,"analyzedSha":"6b01dc5a687b26b3e218f796de45ec51f8fa9e8c","analyzedAt":"2026-08-12T13:20:50.148Z","schemaVersion":2},"datasetVersion":"2026-08-12T18:17:37.767Z"}