{"record":{"id":"c141f89227068ab8","repo":"Fission-AI/OpenSpec","slug":"no-tools-available-for-skill-generation","errorCode":null,"errorMessage":"No tools available for skill generation.","messagePattern":"No tools available for skill generation\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/core/init.ts","lineNumber":634,"sourceCode":"      [...toolStates.entries()]\n        .filter(([, status]) => status.configured)\n        .map(([toolId]) => toolId)\n    );\n    const shouldPreselectDetected = !extendMode && configuredToolIds.size === 0;\n    const canPrompt = this.canPromptInteractively();\n\n    // Non-interactive mode: use detected tools as fallback (task 7.8)\n    if (!canPrompt) {\n      if (detectedToolIds.size > 0) {\n        return [...detectedToolIds];\n      }\n      throw new Error(\n        `No tools detected and no --tools flag provided. Valid tools:\\n  ${validTools.join('\\n  ')}\\n\\nUse --tools all, --tools none, or --tools claude,cursor,...`\n      );\n    }\n\n    if (validTools.length === 0) {\n      throw new Error(\n        `No tools available for skill generation.`\n      );\n    }\n\n    // Interactive mode: show searchable multi-select\n    const { searchableMultiSelect } = await import('../prompts/searchable-multi-select.js');\n\n    // Build choices: pre-select configured tools; keep detected tools visible but unselected.\n    const sortedChoices = validTools\n      .map((toolId) => {\n        const tool = AI_TOOLS.find((t) => t.value === toolId);\n        const status = toolStates.get(toolId);\n        const configured = status?.configured ?? false;\n        const detected = detectedToolIds.has(toolId);\n\n        return {\n          name: tool?.name || toolId,\n          value: toolId,","sourceCodeStart":616,"sourceCodeEnd":652,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/init.ts#L616-L652","documentation":"Error \"No tools available for skill generation.\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/core/init.ts:634 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"}