{"record":{"id":"2541afedb813f892","repo":"eyaltoledano/claude-task-master","slug":"rule-profile-for-profile-not-found-valid-pro","errorCode":null,"errorMessage":"Rule profile for \"${profile}\" not found. Valid profiles: ${RULE_PROFILES.join(', ')}. Skipping.","messagePattern":"Rule profile for \"(.+?)\" not found\\. Valid profiles: (.+?)\\. Skipping\\.","errorType":"console","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"scripts/modules/commands.js","lineNumber":4607,"sourceCode":"\t\t\t\t\t\t\texpandedProfiles,\n\t\t\t\t\t\t\tinstalledProfiles\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconfirmed = await confirmProfilesRemove(expandedProfiles);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!confirmed) {\n\t\t\t\t\tconsole.log(chalk.yellow('Aborted: No rules were removed.'));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst removalResults = [];\n\t\t\tconst addResults = [];\n\n\t\t\tfor (const profile of expandedProfiles) {\n\t\t\t\tif (!isValidProfile(profile)) {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`Rule profile for \"${profile}\" not found. Valid profiles: ${RULE_PROFILES.join(', ')}. Skipping.`\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst profileConfig = getRulesProfile(profile);\n\n\t\t\t\tif (action === RULES_ACTIONS.ADD) {\n\t\t\t\t\tconsole.log(chalk.blue(`Adding rules for profile: ${profile}...`));\n\t\t\t\t\tconst mode = await getOperatingMode(options.mode);\n\t\t\t\t\tconst addResult = convertAllRulesToProfileRules(\n\t\t\t\t\t\tprojectRoot,\n\t\t\t\t\t\tprofileConfig,\n\t\t\t\t\t\t{ mode }\n\t\t\t\t\t);\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\tchalk.blue(`Completed adding rules for profile: ${profile}`)\n\t\t\t\t\t);\n","sourceCodeStart":4589,"sourceCodeEnd":4625,"githubUrl":"https://github.com/eyaltoledano/claude-task-master/blob/c0c98d367c55296bfe69e65680625b6db437af02/scripts/modules/commands.js#L4589-L4625","documentation":"When running `task-master rules` with --add/--remove, each requested profile is validated against the known RULE_PROFILES list. Unknown profile names are skipped with this console.warn and processing continues with the remaining profiles.","triggerScenarios":"`task-master rules add <profiles>` or `task-master rules remove <profiles>` with a profile name not in RULE_PROFILES (e.g. 'claude' vs 'claude-code', misspellings, or profiles from a newer/older version).","commonSituations":"Typo in profile name; following outdated docs or blog posts; using a profile that exists in a different task-master version.","solutions":["Use one of the listed valid profiles from the warning message","Run `task-master rules --help` to see supported profiles","Upgrade or downgrade task-master if the profile is only in another version"],"exampleFix":"// before\ntask-master rules add cursorroo\n// after\ntask-master rules add roo,cursor","handlingStrategy":"validation","validationCode":"const RULE_PROFILES = ['cursor','claude','vscode','windsurf','roo','codex','gemini','amazonq','auggie','zed'];\nconst profiles = args.add?.split(',') ?? [];\nconst invalid = profiles.filter(p => !RULE_PROFILES.includes(p));\nif (invalid.length) throw new Error(`Invalid rule profiles: ${invalid.join(', ')}`);","typeGuard":"const isValidProfile = (p) => RULE_PROFILES.includes(p);","tryCatchPattern":null,"preventionTips":["Check `task-master rules --help` for the current profile list","Copy profile names exactly from the warning output","Pin task-master versions in CI to match documented profiles"],"tags":["cli","configuration","rules-profile","invalid-profile"],"backgroundTag":"invalid-option-value","analyzedSha":"c0c98d367c55296bfe69e65680625b6db437af02","analyzedAt":"2026-08-29T02:56:26.071Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}