eyaltoledano/claude-task-master · warning

Skipping migration of '${file}' - uncertain categorization.

Error message

Skipping migration of '${file}' - uncertain categorization. You may need to move this manually.

What it means

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.

Source

Thrown at scripts/modules/task-manager/migrate.js:156

					// Template/example files go to templates (including example_prd.txt)
					destination = path.join('.taskmaster', 'templates', file);
				} else if (
					lowerFile.includes('complexity') &&
					lowerFile.includes('report') &&
					lowerFile.endsWith('.json')
				) {
					// Only actual complexity reports go to reports
					destination = path.join('.taskmaster', 'reports', file);
				} else if (
					lowerFile.includes('prd') ||
					lowerFile.endsWith('.md') ||
					lowerFile.endsWith('.txt')
				) {
					// Documentation files go to docs (but not examples or reports)
					destination = path.join('.taskmaster', 'docs', file);
				} else {
					// Other files stay in scripts or get skipped - don't force everything into templates
					log.warn(
						`Skipping migration of '${file}' - uncertain categorization. You may need to move this manually.`
					);
					continue;
				}

				migrationPlan.push({
					from: path.join('scripts', file),
					to: destination,
					type: 'script'
				});
			}
		}
	}

	// Check for .taskmasterconfig
	const oldConfig = path.join(projectRoot, LEGACY_CONFIG_FILE);
	if (fs.existsSync(oldConfig)) {
		migrationPlan.push({

View on GitHub (pinned to c0c98d367c)

Solutions

  1. Move the file manually to the desired location (e.g. .taskmaster/docs/ or your own folder) and re-run migration.
  2. Rename/convert the file to a recognized type (e.g. rename notes.txt → docs) so it gets categorized.
  3. Add the file to version control-ignored storage outside the Task Master layout so migration ignores it.

Example fix

// before
scripts/notes.rtf            # skipped, unknown type
// after
.taskmaster/docs/notes.md    # moved manually (or rename to .txt/.md pre-migration)
Defensive patterns

Strategy: validation

Validate before calling

const KNOWN = /\.(js|ts|json|md|txt)$/i;
const unknown = fs.readdirSync('scripts').filter(f => !KNOWN.test(f));
if (unknown.length) console.warn('Move manually before migration:', unknown.join(', '));

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29). Data as JSON: /api/errors/788b8b89d8a4e4d5. Report an issue: GitHub.