{"record":{"id":"9c6d8bad55a2d9c1","repo":"Fission-AI/OpenSpec","slug":"skipping-legacy-legacypath-migration-because-it","errorCode":null,"errorMessage":"Skipping legacy ${legacyPath} migration because it resolves outside this project.","messagePattern":"Skipping legacy (.+?) migration because it resolves outside this project\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/core/migration.ts","lineNumber":307,"sourceCode":"  legacyRoot: string,\n  apply: boolean\n): { moved: number; kept: number } {\n  const adapter = CommandAdapterRegistry.get(tool.value);\n  if (!adapter || !tool.skillsDir) return { moved: 0, kept: 0 };\n  let moved = 0;\n  let kept = 0;\n\n  for (const commandId of COMMAND_IDS) {\n    const currentPath = adapter.getFilePath(commandId);\n    const legacyPath = legacyCommandPath(currentPath, tool.skillsDir, legacyRoot);\n    if (!legacyPath) continue;\n\n    const source = path.join(projectPath, legacyPath);\n    if (!fs.existsSync(source)) continue;\n\n    const destination = path.join(projectPath, currentPath);\n    if (!areProjectArtifacts(projectPath, source, destination)) {\n      console.warn(\n        `Skipping legacy ${legacyPath} migration because it resolves outside this project.`\n      );\n      continue;\n    }\n    const disposition = classifyManagedFile(source, destination);\n    if (disposition === 'skip') continue;\n    if (disposition === 'keep') {\n      kept++;\n      continue;\n    }\n    if (!apply) {\n      moved++;\n      continue;\n    }\n\n    try {\n      if (disposition === 'drop') {\n        fs.rmSync(source, { force: true });","sourceCodeStart":289,"sourceCodeEnd":325,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/migration.ts#L289-L325","documentation":"Error \"Skipping legacy ${legacyPath} migration because it resolves outside this project.\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/core/migration.ts:307 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6926ccb18afa4ff621112813e9968334576ee11a","analyzedAt":"2026-08-25T12:29:45.729Z","schemaVersion":2},"datasetVersion":"2026-08-25T16:17:27.014Z"}