{"record":{"id":"78ce7c52564758e3","repo":"eyaltoledano/claude-task-master","slug":"warning-tm-copy-tag-is-deprecated-use-tm-ta","errorCode":null,"errorMessage":"⚠ Warning: \"tm copy-tag\" is deprecated. Use \"tm tags copy\" instead.","messagePattern":"⚠ Warning: \"tm copy-tag\" is deprecated\\. Use \"tm tags copy\" instead\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"scripts/modules/commands.js","lineNumber":5188,"sourceCode":"\t\t});\n\n\t// copy-tag command (DEPRECATED - use `tm tags copy` instead)\n\tprogramInstance\n\t\t.command('copy-tag')\n\t\t.description(\n\t\t\t'[DEPRECATED] Copy an existing tag to create a new tag with the same tasks (use \"tm tags copy\" instead)'\n\t\t)\n\t\t.argument('<sourceName>', 'Name of the source tag to copy from')\n\t\t.argument('<targetName>', 'Name of the new tag to create')\n\t\t.option(\n\t\t\t'-f, --file <file>',\n\t\t\t'Path to the tasks file',\n\t\t\tTASKMASTER_TASKS_FILE\n\t\t)\n\t\t.option('-d, --description <text>', 'Optional description for the new tag')\n\t\t.action(async (sourceName, targetName, options) => {\n\t\t\t// Show deprecation warning\n\t\t\tconsole.warn(\n\t\t\t\tchalk.yellow(\n\t\t\t\t\t'⚠ Warning: \"tm copy-tag\" is deprecated. Use \"tm tags copy\" instead.'\n\t\t\t\t)\n\t\t\t);\n\t\t\tconsole.log(\n\t\t\t\tchalk.gray('  This command will be removed in a future version.\\n')\n\t\t\t);\n\n\t\t\ttry {\n\t\t\t\t// Initialize TaskMaster\n\t\t\t\tconst taskMaster = initTaskMaster({\n\t\t\t\t\ttasksPath: options.file || true\n\t\t\t\t});\n\t\t\t\tconst tasksPath = taskMaster.getTasksPath();\n\n\t\t\t\t// Validate tasks file exists\n\t\t\t\tif (!fs.existsSync(tasksPath)) {\n\t\t\t\t\tconsole.error(","sourceCodeStart":5170,"sourceCodeEnd":5206,"githubUrl":"https://github.com/eyaltoledano/claude-task-master/blob/c0c98d367c55296bfe69e65680625b6db437af02/scripts/modules/commands.js#L5170-L5206","documentation":"`tm copy-tag` is a legacy alias for `tm tags copy`. It prints this deprecation warning and future-removal notice, then copies the tag as before.","triggerScenarios":"Running `task-master copy-tag <source> <target>` or `tm copy-tag` from scripts, with optional -d description.","commonSituations":"Legacy automation, old documentation, pre-namespace habits.","solutions":["Replace with `tm tags copy <source> <target>`","Keep options like --description/--file identical on the new command","Update scripts and CI","Ignore if migration is deferred; informational only"],"exampleFix":"// before\ntm copy-tag main backup -d='snapshot'\n// after\ntm tags copy main backup --description='snapshot'","handlingStrategy":"validation","validationCode":"if (process.argv.includes('copy-tag')) {\n  console.warn('Deprecated: use `tm tags copy` instead');\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use `tm tags copy src target` (and --description) in automation","Migrate old wrappers/aliases proactively","Verify tag operations still behave the same after migration"],"tags":["cli","deprecation","tag-management"],"backgroundTag":"deprecated-api-usage","analyzedSha":"c0c98d367c55296bfe69e65680625b6db437af02","analyzedAt":"2026-08-29T02:56:26.071Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}