{"record":{"id":"3cbb1e88d03c44be","repo":"eyaltoledano/claude-task-master","slug":"no-recognized-project-type-detected","errorCode":null,"errorMessage":"No recognized project type detected","messagePattern":"No recognized project type detected","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"packages/tm-core/src/modules/tasks/services/preflight-checker.service.ts","lineNumber":229,"sourceCode":"\n\t\treturn toolMap[type] || [];\n\t}\n\n\t/**\n\t * Validate required tools availability\n\t */\n\tasync validateRequiredTools(): Promise<CheckResult> {\n\t\tconst tools: ToolCheck[] = [];\n\n\t\t// Always check git and gh CLI\n\t\ttools.push(this.checkTool('git', ['--version']));\n\t\ttools.push(await this.checkGhCli());\n\n\t\t// Detect project types and check their tools\n\t\tconst projectTypes = this.detectProjectTypes();\n\n\t\tif (projectTypes.length === 0) {\n\t\t\tlogger.warn('No recognized project type detected');\n\t\t} else {\n\t\t\tlogger.info(`Detected project types: ${projectTypes.join(', ')}`);\n\t\t}\n\n\t\tfor (const type of projectTypes) {\n\t\t\tconst typeTools = this.getToolsForProjectType(type);\n\t\t\tfor (const tool of typeTools) {\n\t\t\t\ttools.push(this.checkTool(tool.command, tool.args));\n\t\t\t}\n\t\t}\n\n\t\t// Determine overall success\n\t\tconst allAvailable = tools.every((tool) => tool.available);\n\t\tconst missingTools = tools\n\t\t\t.filter((tool) => !tool.available)\n\t\t\t.map((tool) => tool.name);\n\n\t\tif (!allAvailable) {","sourceCodeStart":211,"sourceCodeEnd":247,"githubUrl":"https://github.com/eyaltoledano/claude-task-master/blob/c0c98d367c55296bfe69e65680625b6db437af02/packages/tm-core/src/modules/tasks/services/preflight-checker.service.ts#L211-L247","documentation":"preflight-checker.service.ts validateRequiredTools() detects the project's types (e.g. node, python, go) and checks their required tools. If no recognized project type is found it logs this warning and proceeds with only generic checks (like gh CLI), so type-specific tool requirements are not validated.","triggerScenarios":"Calling validateRequiredTools() in a directory with no package manifest the detector knows (no package.json, requirements.txt, go.mod, Cargo.toml, etc.), or when detection runs in the wrong working directory.","commonSituations":"Running the CLI from a subdirectory or the home directory instead of the project root, a project using an unsupported stack, monorepo root lacking any top-level manifest, empty scratch directory.","solutions":["Run the preflight from the project root where the manifest lives","Add a recognized manifest file (package.json, go.mod, requirements.txt, etc.) appropriate to the stack","Install the tools the checker would require for your stack manually if detection can't be fixed","Ignore the warning if the project genuinely needs no type-specific tools"],"exampleFix":"// before\ncd ~/somewhere && taskmaster preflight\n// after\ncd /path/to/project && taskmaster preflight  # directory contains package.json","handlingStrategy":"validation","validationCode":"import { existsSync } from 'fs';\nconst manifests = ['package.json', 'go.mod', 'requirements.txt', 'pyproject.toml', 'Cargo.toml', 'pom.xml'];\nif (!manifests.some(m => existsSync(m))) console.warn('No recognized project manifest in cwd; type-specific tool checks will be skipped');","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Run preflight checks from the project root","Keep a recognized manifest at the repo root even in monorepos","Install type-specific tools (node, python, go, gh) in dev/CI images","Treat the warning as a signal you're in the wrong directory"],"tags":["preflight","project-detection","tools"],"backgroundTag":"no-project-type-detected","analyzedSha":"c0c98d367c55296bfe69e65680625b6db437af02","analyzedAt":"2026-08-29T02:56:26.071Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}