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
- 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.
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
- 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.
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
- .taskmaster directory already exists. Use --force to overwri
- Source file not found: ${item.from}
- Failed to get brief creation URL
- SAVE_FAILED
- CLEAR_FAILED
AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29).
Data as JSON: /api/errors/788b8b89d8a4e4d5.
Report an issue: GitHub.