{"record":{"id":"b582c562b409f05b","repo":"eyaltoledano/claude-task-master","slug":"rule-profile-for-profile-not-found-valid-pro-b582c5","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":"src/utils/profiles.js","lineNumber":236,"sourceCode":" * @param {string[]} profiles - Array of profile names to process\n * @param {string} projectRoot - Project root directory path\n * @param {string|undefined} modeOption - Operating mode option from CLI\n * @returns {Promise<Array<{profileName: string, success: number, failed: number}>>} Results for each profile\n */\nexport async function processRuleProfiles(profiles, projectRoot, modeOption) {\n\tconst results = [];\n\tconst mode = await getOperatingMode(modeOption);\n\n\tfor (let i = 0; i < profiles.length; i++) {\n\t\tconst profile = profiles[i];\n\t\tconsole.log(\n\t\t\tchalk.blue(\n\t\t\t\t`Processing profile ${i + 1}/${profiles.length}: ${profile}...`\n\t\t\t)\n\t\t);\n\n\t\tif (!isValidProfile(profile)) {\n\t\t\tconsole.warn(\n\t\t\t\t`Rule profile for \"${profile}\" not found. Valid profiles: ${RULE_PROFILES.join(', ')}. Skipping.`\n\t\t\t);\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst profileConfig = getRulesProfile(profile);\n\t\tconst addResult = convertAllRulesToProfileRules(\n\t\t\tprojectRoot,\n\t\t\tprofileConfig,\n\t\t\t{\n\t\t\t\tmode\n\t\t\t}\n\t\t);\n\n\t\tresults.push({\n\t\t\tprofileName: profile,\n\t\t\tsuccess: addResult.success,\n\t\t\tfailed: addResult.failed","sourceCodeStart":218,"sourceCodeEnd":254,"githubUrl":"https://github.com/eyaltoledano/claude-task-master/blob/c0c98d367c55296bfe69e65680625b6db437af02/src/utils/profiles.js#L218-L254","documentation":"During rule profile processing in the CLI setup, each requested profile name is validated against the known RULE_PROFILES list. If a profile name is not recognized, a warning is printed listing valid profiles and that profile is skipped (continue) rather than aborting the whole setup. The remaining valid profiles are still processed.","triggerScenarios":"Running `task-master rules` / setup commands (registerCommands, addResults flows) with a --profile or profile list containing a typo or unsupported profile name, e.g. 'cursorrules' instead of 'cursor'.","commonSituations":"Typo in CLI flag; following outdated documentation or blog posts referencing renamed profiles; scripted invocations with stale profile names after a version upgrade renamed/removed a profile.","solutions":["Correct the profile name to one of the valid values printed in the warning (compare against RULE_PROFILES output).","Run `task-master rules --help` (or the interactive setup) to see the current list of supported profiles.","If following a guide, check whether the profile was renamed in your installed version and update the command.","Wrap profile processing to fail fast on invalid names if silent skipping is undesirable in your automation."],"exampleFix":"// before\ntask-master rules add --profile cursorrules\n// after\ntask-master rules add --profile cursor","handlingStrategy":"validation","validationCode":"import { RULE_PROFILES, isValidProfile } from '../utils/profiles.js';\nconst requested = ['cursor', 'cursorrules'];\nconst invalid = requested.filter(p => !isValidProfile(p));\nif (invalid.length) throw new Error(`Unknown profiles: ${invalid.join(', ')}. Valid: ${RULE_PROFILES.join(', ')}`);","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate profile names against isValidProfile() before invoking rules commands in scripts.","Keep a constant list of profile names in your automation sourced from RULE_PROFILES, not hardcoded strings.","Re-check profile names after upgrading task-master; profiles can be renamed.","Prefer the interactive setup flow, which only offers valid profiles."],"tags":["cli","configuration","rule-profiles"],"backgroundTag":"invalid-config-value","analyzedSha":"c0c98d367c55296bfe69e65680625b6db437af02","analyzedAt":"2026-08-29T02:56:26.071Z","schemaVersion":2},"datasetVersion":"2026-08-29T07:17:48.351Z"}