ruvnet/ruflo · error

project-local flywheel anchor required; create

Error message

project-local flywheel anchor required; create ${DEFAULT_PROJECT_ANCHOR_MANIFEST} or pass anchorPath + anchorHash

What it means

loadEffectiveFlywheelAnchor throws when the repo is not a Ruflo repository (and RUFLO_FLYWHEEL_ALLOW_BUILTIN_ANCHOR is unset) and no project-local anchor manifest exists; evaluation refuses to run without a task anchor.

Solutions

  1. Create the default project anchor manifest file
  2. Pass anchorPath and anchorHash together explicitly

Example fix

Create the default project anchor manifest file, or pass both anchorPath and anchorHash explicitly.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at v3/@claude-flow/cli/src/services/harness-project-anchor.ts:185 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@2602b642d9 (2026-08-18). Data as JSON: /api/errors/cc21e4facd0fa5d4. Report an issue: GitHub.

Appendix: source

Thrown at v3/@claude-flow/cli/src/services/harness-project-anchor.ts:196

    const requested = existsSync(manifestRelative) ? manifestRelative : resolve(root, manifest.path);
    return toSelection(containedPath(root, requested), manifest.sha256);
  }

  if (isRufloRepository(root) || process.env.RUFLO_FLYWHEEL_ALLOW_BUILTIN_ANCHOR === '1') {
    const frozen = loadFrozenHumanEval();
    return {
      version: frozen.version,
      anchorRef: FROZEN_HUMAN_EVAL_HASH,
      source: 'ruflo-built-in',
      tasks: frozen.tasks.map((task) => ({
        id: task.id,
        input: { id: task.id, q: task.q },
        expected: task.labels,
      })),
    };
  }

  throw new Error(
    `project-local flywheel anchor required; create ${DEFAULT_PROJECT_ANCHOR_MANIFEST} or pass anchorPath + anchorHash`,
  );
}

View on GitHub (pinned to 2602b642d9)