{"record":{"id":"590bfc379d975d67","repo":"Fission-AI/OpenSpec","slug":"unknown-tool-toolid-valid-tools-validto","errorCode":null,"errorMessage":"Unknown tool '${toolId}'. Valid tools:\n  ${validToolIds.join('\\n  ')}","messagePattern":"Unknown tool '(.+?)'\\. Valid tools:\n  (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/core/init.ts","lineNumber":808,"sourceCode":"          return index === firstSharedIndex && sharedTargetOwner ? [sharedTargetOwner] : [];\n        })\n      : toolIds;\n    if (\n      reconciledToolIds.length !== toolIds.length ||\n      reconciledToolIds.some((toolId, index) => toolId !== toolIds[index])\n    ) {\n      console.log(\n        chalk.dim(\n          `Codex, Zed, and agents share .agents/skills; writing one tree for ${sharedTargetOwner}.`\n        )\n      );\n    }\n\n    for (const toolId of reconciledToolIds) {\n      const tool = AI_TOOLS.find((t) => t.value === toolId);\n      if (!tool) {\n        const validToolIds = getToolsWithSkillsDir();\n        throw new Error(\n          `Unknown tool '${toolId}'. Valid tools:\\n  ${validToolIds.join('\\n  ')}`\n        );\n      }\n\n      if (!toolSupportsSkills(tool)) {\n        const validToolsWithSkills = getToolsWithSkillsDir();\n        throw new Error(\n          `Tool '${toolId}' does not support skill generation.\\nTools with skill generation support:\\n  ${validToolsWithSkills.join('\\n  ')}`\n        );\n      }\n\n      const preState = toolStates.get(tool.value);\n      const skillsPath = resolveToolSkillsDir(projectPath, tool);\n      const isGlobalSkillTarget = hasGlobalSkillTarget(tool);\n      validatedTools.push({\n        value: tool.value,\n        name: tool.name,\n        skillsDir: tool.skillsDir,","sourceCodeStart":790,"sourceCodeEnd":826,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/init.ts#L790-L826","documentation":"Error \"Unknown tool '${toolId}'. Valid tools:\n  ${validToolIds.join('\\n  ')}\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/core/init.ts:808 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"}