{"record":{"id":"788b8b89d8a4e4d5","repo":"eyaltoledano/claude-task-master","slug":"skipping-migration-of-file-uncertain-catego","errorCode":null,"errorMessage":"Skipping migration of '${file}' - uncertain categorization. You may need to move this manually.","messagePattern":"Skipping migration of '(.+?)' - uncertain categorization\\. You may need to move this manually\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"scripts/modules/task-manager/migrate.js","lineNumber":156,"sourceCode":"\t\t\t\t\t// Template/example files go to templates (including example_prd.txt)\n\t\t\t\t\tdestination = path.join('.taskmaster', 'templates', file);\n\t\t\t\t} else if (\n\t\t\t\t\tlowerFile.includes('complexity') &&\n\t\t\t\t\tlowerFile.includes('report') &&\n\t\t\t\t\tlowerFile.endsWith('.json')\n\t\t\t\t) {\n\t\t\t\t\t// Only actual complexity reports go to reports\n\t\t\t\t\tdestination = path.join('.taskmaster', 'reports', file);\n\t\t\t\t} else if (\n\t\t\t\t\tlowerFile.includes('prd') ||\n\t\t\t\t\tlowerFile.endsWith('.md') ||\n\t\t\t\t\tlowerFile.endsWith('.txt')\n\t\t\t\t) {\n\t\t\t\t\t// Documentation files go to docs (but not examples or reports)\n\t\t\t\t\tdestination = path.join('.taskmaster', 'docs', file);\n\t\t\t\t} else {\n\t\t\t\t\t// Other files stay in scripts or get skipped - don't force everything into templates\n\t\t\t\t\tlog.warn(\n\t\t\t\t\t\t`Skipping migration of '${file}' - uncertain categorization. You may need to move this manually.`\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tmigrationPlan.push({\n\t\t\t\t\tfrom: path.join('scripts', file),\n\t\t\t\t\tto: destination,\n\t\t\t\t\ttype: 'script'\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check for .taskmasterconfig\n\tconst oldConfig = path.join(projectRoot, LEGACY_CONFIG_FILE);\n\tif (fs.existsSync(oldConfig)) {\n\t\tmigrationPlan.push({","sourceCodeStart":138,"sourceCodeEnd":174,"githubUrl":"https://github.com/eyaltoledano/claude-task-master/blob/c0c98d367c55296bfe69e65680625b6db437af02/scripts/modules/task-manager/migrate.js#L138-L174","documentation":"While building the migration plan, analyzeMigrationNeeds categorizes each legacy file. Files it cannot confidently classify (not docs, scripts, templates, etc.) are skipped with this warning rather than being forced into a wrong destination; the user must move them manually.","triggerScenarios":"A file inside the legacy scripts/ (or legacy root) has an extension/name matching none of the known categories (not .js/.ts config/scripts, not .json templates, not .md/.txt docs) during migration plan analysis.","commonSituations":"Custom user scripts, logs, or data files (e.g. notes.rtf, data.csv, own-tool.py) sitting alongside task-master files in the legacy layout; legacy directories containing unrelated project assets.","solutions":["Move the file manually to the desired location (e.g. .taskmaster/docs/ or your own folder) and re-run migration.","Rename/convert the file to a recognized type (e.g. rename notes.txt → docs) so it gets categorized.","Add the file to version control-ignored storage outside the Task Master layout so migration ignores it."],"exampleFix":"// before\nscripts/notes.rtf            # skipped, unknown type\n// after\n.taskmaster/docs/notes.md    # moved manually (or rename to .txt/.md pre-migration)","handlingStrategy":"validation","validationCode":"const KNOWN = /\\.(js|ts|json|md|txt)$/i;\nconst unknown = fs.readdirSync('scripts').filter(f => !KNOWN.test(f));\nif (unknown.length) console.warn('Move manually before migration:', unknown.join(', '));","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep only task-master-managed files in the legacy scripts directory.","Move custom assets into their own folders outside Task Master's layout before migrating.","Review migration warnings after each run and relocate flagged files manually."],"tags":["migration","filesystem","categorization"],"backgroundTag":"unrecognized-file-type","analyzedSha":"c0c98d367c55296bfe69e65680625b6db437af02","analyzedAt":"2026-08-29T02:56:26.071Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}