{"record":{"id":"2755f4a1c29cfc59","repo":"Fission-AI/OpenSpec","slug":"no-tools-detected-and-no-tools-flag-provided-va","errorCode":null,"errorMessage":"No tools detected and no --tools flag provided. Valid tools:\n  ${validTools.join('\\n  ')}\n\nUse --tools all, --tools none, or --tools claude,cursor,...","messagePattern":"No tools detected and no --tools flag provided\\. Valid tools:\n  (.+?)\n\nUse --tools all, --tools none, or --tools claude,cursor,\\.\\.\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/core/init.ts","lineNumber":628,"sourceCode":"      return nonInteractiveSelection;\n    }\n\n    const validTools = getToolsWithSkillsDir();\n    const detectedToolIds = new Set(detectedTools.map((t) => t.value));\n    const configuredToolIds = new Set(\n      [...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);","sourceCodeStart":610,"sourceCodeEnd":646,"githubUrl":"https://github.com/Fission-AI/OpenSpec/blob/6926ccb18afa4ff621112813e9968334576ee11a/src/core/init.ts#L610-L646","documentation":"Error \"No tools detected and no --tools flag provided. Valid tools:\n  ${validTools.join('\\n  ')}\n\nUse --tools all, --tools none, or --tools claude,cursor,...\" thrown in Fission-AI/OpenSpec.","triggerScenarios":"Thrown at src/core/init.ts:628 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"}