Fission-AI/OpenSpec · error

Skipping legacy ${legacy.root}/ migration because the direct

Error message

Skipping legacy ${legacy.root}/ migration because the directory resolves outside this project.

What it means

Error "Skipping legacy ${legacy.root}/ migration because the directory resolves outside this project." thrown in Fission-AI/OpenSpec.

Source

Thrown at src/core/migration.ts:182

    if (!tool.skillsDir) continue;
    if (toolIds && !toolIds.includes(tool.value)) continue;

    for (const legacy of LEGACY_TOOL_ROOTS[tool.value] ?? []) {
      const legacyTiming = legacy.timing ?? 'before-generation';
      if (legacyTiming !== timing) continue;
      if (legacy.root === tool.skillsDir) continue;
      // Without an explicit tool list, only moves that need no consent run.
      if (apply && !toolIds && legacy.needsConsent) continue;
      const legacyRootPath = path.join(projectPath, legacy.root);
      if (!fs.existsSync(legacyRootPath)) continue;
      try {
        FileSystemUtils.assertProjectArtifactPath(projectPath, legacyRootPath);
        FileSystemUtils.assertProjectArtifactPath(
          projectPath,
          path.join(projectPath, tool.skillsDir)
        );
      } catch {
        console.warn(
          `Skipping legacy ${legacy.root}/ migration because the directory resolves outside this project.`
        );
        continue;
      }

      const skills = migrateSkillDirs(
        projectPath,
        tool.skillsDir,
        legacy.root,
        apply,
        legacyTiming === 'after-generation'
      );
      const commands = migrateCommandFiles(projectPath, tool, legacy.root, apply);

      if (apply) {
        removeDirIfEmpty(path.join(legacyRootPath, 'skills'));
        removeDirIfEmpty(path.join(legacyRootPath, 'workflows'));
        removeDirIfEmpty(legacyRootPath);

View on GitHub (pinned to 6926ccb18a)

When it happens

Trigger: Thrown at src/core/migration.ts:182 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Fission-AI/OpenSpec@6926ccb18a (2026-08-25). Data as JSON: /api/errors/18ff7cf67465a46d. Report an issue: GitHub.