eyaltoledano/claude-task-master · warning

Rule profile for "${profile}" not found. Valid profiles: ${R

Error message

Rule profile for "${profile}" not found. Valid profiles: ${RULE_PROFILES.join(', ')}. Skipping.

What it means

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.

Source

Thrown at scripts/modules/commands.js:4607

							expandedProfiles,
							installedProfiles
						);
					} else {
						confirmed = await confirmProfilesRemove(expandedProfiles);
					}
				}
				if (!confirmed) {
					console.log(chalk.yellow('Aborted: No rules were removed.'));
					return;
				}
			}

			const removalResults = [];
			const addResults = [];

			for (const profile of expandedProfiles) {
				if (!isValidProfile(profile)) {
					console.warn(
						`Rule profile for "${profile}" not found. Valid profiles: ${RULE_PROFILES.join(', ')}. Skipping.`
					);
					continue;
				}
				const profileConfig = getRulesProfile(profile);

				if (action === RULES_ACTIONS.ADD) {
					console.log(chalk.blue(`Adding rules for profile: ${profile}...`));
					const mode = await getOperatingMode(options.mode);
					const addResult = convertAllRulesToProfileRules(
						projectRoot,
						profileConfig,
						{ mode }
					);
					console.log(
						chalk.blue(`Completed adding rules for profile: ${profile}`)
					);

View on GitHub (pinned to c0c98d367c)

Solutions

  1. Use one of the listed valid profiles from the warning message
  2. Run `task-master rules --help` to see supported profiles
  3. Upgrade or downgrade task-master if the profile is only in another version

Example fix

// before
task-master rules add cursorroo
// after
task-master rules add roo,cursor
Defensive patterns

Strategy: validation

Validate before calling

const RULE_PROFILES = ['cursor','claude','vscode','windsurf','roo','codex','gemini','amazonq','auggie','zed'];
const profiles = args.add?.split(',') ?? [];
const invalid = profiles.filter(p => !RULE_PROFILES.includes(p));
if (invalid.length) throw new Error(`Invalid rule profiles: ${invalid.join(', ')}`);

Type guard

const isValidProfile = (p) => RULE_PROFILES.includes(p);

Prevention

When it happens

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

Common situations: Typo in profile name; following outdated docs or blog posts; using a profile that exists in a different task-master version.

Understand the failure class

Background: Invalid option value errors: "must be one of", "is not a valid", and "only allows" failures explained — this error's family across 23 libraries.

Related errors


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