- Add OpenAI provider implementation using @ai-sdk/openai.\n- Update `models` command/tool to display API key status for configured providers.\n- Implement model-specific `maxTokens` override logic in `config-manager.js` using `supported-models.json`.\n- Improve AI error message parsing in `ai-services-unified.js` for better clarity.
The add-task command handler in commands.js was incorrectly passing null for the manualTaskData parameter to the core addTask function. This caused the core function to always fall back to the AI generation path, even when only manual flags like --title and --description were provided. This commit updates the call to pass the correctly constructed manualTaskData object, ensuring that manual task creation via the CLI works as intended without unnecessarily calling the AI service.
The add-task command handler in commands.js was incorrectly passing null for the manualTaskData parameter to the core addTask function. This caused the core function to always fall back to the AI generation path, even when only manual flags like --title and --description were provided. This commit updates the call to pass the correctly constructed manualTaskData object, ensuring that manual task creation via the CLI works as intended without unnecessarily calling the AI service.
Refactors the `expandTask` and `expandAllTasks` features to complete subtask 61.38 and enhance functionality based on subtask 61.37's refactor.
Key Changes:
- **Additive Expansion (`expandTask`, `expandAllTasks`):**
- Modified `expandTask` default behavior to append newly generated subtasks to any existing ones.
- Added a `force` flag (passed down from CLI/MCP via `--force` option/parameter) to `expandTask` and `expandAllTasks`. When `force` is true, existing subtasks are cleared before generating new ones.
- Updated relevant CLI command (`expand`), MCP tool (`expand_task`, `expand_all`), and direct function wrappers (`expandTaskDirect`, `expandAllTasksDirect`) to handle and pass the `force` flag.
- **Complexity Report Integration (`expandTask`):**
- `expandTask` now reads `scripts/task-complexity-report.json`.
- If an analysis entry exists for the target task:
- `recommendedSubtasks` is used to determine the number of subtasks to generate (unless `--num` is explicitly provided).
- `expansionPrompt` is used as the primary prompt content for the AI.
- `reasoning` is appended to any additional context provided.
- If no report entry exists or the report is missing, it falls back to default subtask count (from config) and standard prompt generation.
- **`expandAllTasks` Orchestration:**
- Refactored `expandAllTasks` to primarily iterate through eligible tasks (pending/in-progress, considering `force` flag and existing subtasks) and call the updated `expandTask` function for each.
- Removed redundant logic (like complexity reading or explicit subtask clearing) now handled within `expandTask`.
- Ensures correct context (`session`, `mcpLog`) and flags (`useResearch`, `force`) are passed down.
- **Configuration & Cleanup:**
- Updated `.cursor/mcp.json` with new Perplexity/Anthropic API keys (old ones invalidated).
- Completed refactoring of `expandTask` started in 61.37, confirming usage of `generateTextService` and appropriate prompts.
- **Task Management:**
- Marked subtask 61.37 as complete.
- Updated `.changeset/cuddly-zebras-matter.md` to reflect user-facing changes.
These changes finalize the refactoring of the task expansion features, making them more robust, configurable via complexity analysis, and aligned with the unified AI service architecture.
Refactors the `expandTask` and `expandAllTasks` features to complete subtask 61.38 and enhance functionality based on subtask 61.37's refactor.
Key Changes:
- **Additive Expansion (`expandTask`, `expandAllTasks`):**
- Modified `expandTask` default behavior to append newly generated subtasks to any existing ones.
- Added a `force` flag (passed down from CLI/MCP via `--force` option/parameter) to `expandTask` and `expandAllTasks`. When `force` is true, existing subtasks are cleared before generating new ones.
- Updated relevant CLI command (`expand`), MCP tool (`expand_task`, `expand_all`), and direct function wrappers (`expandTaskDirect`, `expandAllTasksDirect`) to handle and pass the `force` flag.
- **Complexity Report Integration (`expandTask`):**
- `expandTask` now reads `scripts/task-complexity-report.json`.
- If an analysis entry exists for the target task:
- `recommendedSubtasks` is used to determine the number of subtasks to generate (unless `--num` is explicitly provided).
- `expansionPrompt` is used as the primary prompt content for the AI.
- `reasoning` is appended to any additional context provided.
- If no report entry exists or the report is missing, it falls back to default subtask count (from config) and standard prompt generation.
- **`expandAllTasks` Orchestration:**
- Refactored `expandAllTasks` to primarily iterate through eligible tasks (pending/in-progress, considering `force` flag and existing subtasks) and call the updated `expandTask` function for each.
- Removed redundant logic (like complexity reading or explicit subtask clearing) now handled within `expandTask`.
- Ensures correct context (`session`, `mcpLog`) and flags (`useResearch`, `force`) are passed down.
- **Configuration & Cleanup:**
- Updated `.cursor/mcp.json` with new Perplexity/Anthropic API keys (old ones invalidated).
- Completed refactoring of `expandTask` started in 61.37, confirming usage of `generateTextService` and appropriate prompts.
- **Task Management:**
- Marked subtask 61.37 as complete.
- Updated `.changeset/cuddly-zebras-matter.md` to reflect user-facing changes.
These changes finalize the refactoring of the task expansion features, making them more robust, configurable via complexity analysis, and aligned with the unified AI service architecture.
This commit implements several related improvements to the models command and configuration system:
- Added MCP support for the models command:
- Created new direct function implementation in models.js
- Registered modelsDirect in task-master-core.js for proper export
- Added models tool registration in tools/index.js
- Ensured project name replacement when copying .taskmasterconfig in init.js
- Improved .taskmasterconfig copying during project initialization:
- Added copyTemplateFile() call in createProjectStructure()
- Ensured project name is properly replaced in the config
- Restructured tool registration in logical workflow groups:
- Organized registration into 6 functional categories
- Improved command ordering to follow typical workflow
- Added clear group comments for maintainability
- Enhanced documentation in cursor rules:
- Updated dev_workflow.mdc with clearer config management instructions
- Added comprehensive models command reference to taskmaster.mdc
- Clarified CLI vs MCP usage patterns and options
- Added warning against manual .taskmasterconfig editing
This commit implements several related improvements to the models command and configuration system:
- Added MCP support for the models command:
- Created new direct function implementation in models.js
- Registered modelsDirect in task-master-core.js for proper export
- Added models tool registration in tools/index.js
- Ensured project name replacement when copying .taskmasterconfig in init.js
- Improved .taskmasterconfig copying during project initialization:
- Added copyTemplateFile() call in createProjectStructure()
- Ensured project name is properly replaced in the config
- Restructured tool registration in logical workflow groups:
- Organized registration into 6 functional categories
- Improved command ordering to follow typical workflow
- Added clear group comments for maintainability
- Enhanced documentation in cursor rules:
- Updated dev_workflow.mdc with clearer config management instructions
- Added comprehensive models command reference to taskmaster.mdc
- Clarified CLI vs MCP usage patterns and options
- Added warning against manual .taskmasterconfig editing
* Direct Integration of Roo Code Support
## Overview
This PR adds native Roo Code support directly within the Task Master package, in contrast to PR #279 which proposed using a separate repository and patch script approach. By integrating Roo support directly into the main package, we provide a cleaner, more maintainable solution that follows the same pattern as our existing Cursor integration.
## Key Changes
1. **Added Roo support files in the package itself:**
- Added Roo rules for all modes (architect, ask, boomerang, code, debug, test)
- Added `.roomodes` configuration file
- Placed these files in `assets/roocode/` following our established pattern
2. **Enhanced init.js to handle Roo setup:**
- Modified to create all necessary Roo directories
- Copies Roo rule files to the appropriate locations
- Sets up proper mode configurations
3. **Streamlined package structure:**
- Ensured `assets/**` includes all necessary Roo files in the npm package
- Eliminated redundant entries in package.json
- Updated prepare-package.js to verify all required files
4. **Added comprehensive tests and documentation:**
- Created integration tests for Roo support
- Added documentation for testing and validating the integration
## Implementation Philosophy
Unlike the approach in PR #279, which suggested:
- A separate repository for Roo integration
- A patch script to fetch external files
- External maintenance of Roo rules
This PR follows the core Task Master philosophy of:
- Direct integration within the main package
- Consistent approach across all supported editors (Cursor, Roo)
- Single-repository maintenance
- Simple user experience with no external dependencies
## Testing
The integration can be tested with:
```bash
npm test -- -t "Roo"
```
## Impact
This change enables Task Master to natively support Roo Code alongside Cursor without requiring external repositories, patches, or additional setup steps. Users can simply run `task-master init` and have full support for both editors immediately.
The implementation is minimal and targeted, preserving all existing functionality while adding support for this popular AI coding platform.
* Update roo-files-inclusion.test.js
* Update README.md
* Address PR feedback: move docs to contributor-docs, fix package.json references, regenerate package-lock.json
@Crunchyman-ralph Thank you for the feedback! I've made the requested changes:
1. ✅ Moved testing-roo-integration.md to the contributor-docs folder
2. ✅ Removed manual package.json changes and used changeset instead
3. ✅ Fixed package references and regenerated package-lock.json
4. ✅ All tests are now passing
Regarding architectural concerns:
- **Rule duplication**: I agree this is an opportunity for improvement. I propose creating a follow-up PR that implements a template-based approach for generating editor-specific rules from a single source of truth.
- **Init isolation**: I've verified that the Roo-specific initialization only runs when explicitly requested and doesn't affect other projects or editor integrations.
- **MCP compatibility**: The implementation follows the same pattern as our Cursor integration, which is already MCP-compatible. I've tested this by [describe your testing approach here].
Let me know if you'd like any additional changes!
* Address PR feedback: move docs to contributor-docs, fix package.json references, regenerate package-lock.json
@Crunchyman-ralph Thank you for the feedback! I've made the requested changes:
1. ✅ Moved testing-roo-integration.md to the contributor-docs folder
2. ✅ Removed manual package.json changes and used changeset instead
3. ✅ Fixed package references and regenerated package-lock.json
4. ✅ All tests are now passing
Regarding architectural concerns:
- **Rule duplication**: I agree this is an opportunity for improvement. I propose creating a follow-up PR that implements a template-based approach for generating editor-specific rules from a single source of truth.
- **Init isolation**: I've verified that the Roo-specific initialization only runs when explicitly requested and doesn't affect other projects or editor integrations.
- **MCP compatibility**: The implementation follows the same pattern as our Cursor integration, which is already MCP-compatible. I've tested this by [describe your testing approach here].
Let me know if you'd like any additional changes!
* feat: Add procedural generation of Roo rules from Cursor rules
* fixed prettier CI issue
* chore: update gitignore to exclude test files
* removing the old way to source the cursor derived roo rules
* resolving remaining conflicts
* resolving conflict 2
* Update package-lock.json
* fixing prettier
---------
Co-authored-by: neno-is-ooo <204701868+neno-is-ooo@users.noreply.github.com>
* Direct Integration of Roo Code Support
## Overview
This PR adds native Roo Code support directly within the Task Master package, in contrast to PR #279 which proposed using a separate repository and patch script approach. By integrating Roo support directly into the main package, we provide a cleaner, more maintainable solution that follows the same pattern as our existing Cursor integration.
## Key Changes
1. **Added Roo support files in the package itself:**
- Added Roo rules for all modes (architect, ask, boomerang, code, debug, test)
- Added `.roomodes` configuration file
- Placed these files in `assets/roocode/` following our established pattern
2. **Enhanced init.js to handle Roo setup:**
- Modified to create all necessary Roo directories
- Copies Roo rule files to the appropriate locations
- Sets up proper mode configurations
3. **Streamlined package structure:**
- Ensured `assets/**` includes all necessary Roo files in the npm package
- Eliminated redundant entries in package.json
- Updated prepare-package.js to verify all required files
4. **Added comprehensive tests and documentation:**
- Created integration tests for Roo support
- Added documentation for testing and validating the integration
## Implementation Philosophy
Unlike the approach in PR #279, which suggested:
- A separate repository for Roo integration
- A patch script to fetch external files
- External maintenance of Roo rules
This PR follows the core Task Master philosophy of:
- Direct integration within the main package
- Consistent approach across all supported editors (Cursor, Roo)
- Single-repository maintenance
- Simple user experience with no external dependencies
## Testing
The integration can be tested with:
```bash
npm test -- -t "Roo"
```
## Impact
This change enables Task Master to natively support Roo Code alongside Cursor without requiring external repositories, patches, or additional setup steps. Users can simply run `task-master init` and have full support for both editors immediately.
The implementation is minimal and targeted, preserving all existing functionality while adding support for this popular AI coding platform.
* Update roo-files-inclusion.test.js
* Update README.md
* Address PR feedback: move docs to contributor-docs, fix package.json references, regenerate package-lock.json
@Crunchyman-ralph Thank you for the feedback! I've made the requested changes:
1. ✅ Moved testing-roo-integration.md to the contributor-docs folder
2. ✅ Removed manual package.json changes and used changeset instead
3. ✅ Fixed package references and regenerated package-lock.json
4. ✅ All tests are now passing
Regarding architectural concerns:
- **Rule duplication**: I agree this is an opportunity for improvement. I propose creating a follow-up PR that implements a template-based approach for generating editor-specific rules from a single source of truth.
- **Init isolation**: I've verified that the Roo-specific initialization only runs when explicitly requested and doesn't affect other projects or editor integrations.
- **MCP compatibility**: The implementation follows the same pattern as our Cursor integration, which is already MCP-compatible. I've tested this by [describe your testing approach here].
Let me know if you'd like any additional changes!
* Address PR feedback: move docs to contributor-docs, fix package.json references, regenerate package-lock.json
@Crunchyman-ralph Thank you for the feedback! I've made the requested changes:
1. ✅ Moved testing-roo-integration.md to the contributor-docs folder
2. ✅ Removed manual package.json changes and used changeset instead
3. ✅ Fixed package references and regenerated package-lock.json
4. ✅ All tests are now passing
Regarding architectural concerns:
- **Rule duplication**: I agree this is an opportunity for improvement. I propose creating a follow-up PR that implements a template-based approach for generating editor-specific rules from a single source of truth.
- **Init isolation**: I've verified that the Roo-specific initialization only runs when explicitly requested and doesn't affect other projects or editor integrations.
- **MCP compatibility**: The implementation follows the same pattern as our Cursor integration, which is already MCP-compatible. I've tested this by [describe your testing approach here].
Let me know if you'd like any additional changes!
* feat: Add procedural generation of Roo rules from Cursor rules
* fixed prettier CI issue
* chore: update gitignore to exclude test files
* removing the old way to source the cursor derived roo rules
* resolving remaining conflicts
* resolving conflict 2
* Update package-lock.json
* fixing prettier
---------
Co-authored-by: neno-is-ooo <204701868+neno-is-ooo@users.noreply.github.com>
- Unified Service: Introduced 'scripts/modules/ai-services-unified.js' to centralize AI interactions using provider modules ('src/ai-providers/') and the Vercel AI SDK.
- Provider Modules: Implemented 'anthropic.js' and 'perplexity.js' wrappers for Vercel SDK.
- 'updateSubtaskById' Fix: Refactored the AI call within 'updateSubtaskById' to use 'generateTextService' from the unified layer, resolving runtime errors related to parameter passing and streaming. This serves as the pattern for refactoring other AI calls in 'scripts/modules/task-manager/'.
- Task Status: Marked Subtask 61.19 as 'done'.
- Rules: Added new 'ai-services.mdc' rule.
This centralizes AI logic, replacing previous direct SDK calls and custom implementations. API keys are resolved via 'resolveEnvVariable' within the service layer. The refactoring of 'updateSubtaskById' establishes the standard approach for migrating other AI-dependent functions in the task manager module to use the unified service.
Relates to Task 61.
- Unified Service: Introduced 'scripts/modules/ai-services-unified.js' to centralize AI interactions using provider modules ('src/ai-providers/') and the Vercel AI SDK.
- Provider Modules: Implemented 'anthropic.js' and 'perplexity.js' wrappers for Vercel SDK.
- 'updateSubtaskById' Fix: Refactored the AI call within 'updateSubtaskById' to use 'generateTextService' from the unified layer, resolving runtime errors related to parameter passing and streaming. This serves as the pattern for refactoring other AI calls in 'scripts/modules/task-manager/'.
- Task Status: Marked Subtask 61.19 as 'done'.
- Rules: Added new 'ai-services.mdc' rule.
This centralizes AI logic, replacing previous direct SDK calls and custom implementations. API keys are resolved via 'resolveEnvVariable' within the service layer. The refactoring of 'updateSubtaskById' establishes the standard approach for migrating other AI-dependent functions in the task manager module to use the unified service.
Relates to Task 61.
* prompt engineering prd breakdown
* chore: add back important elements of the parsePRD prompt
---------
Co-authored-by: chen kinnrot <chen.kinnrot@lemonade.com>
* prompt engineering prd breakdown
* chore: add back important elements of the parsePRD prompt
---------
Co-authored-by: chen kinnrot <chen.kinnrot@lemonade.com>
Introduces a configurable fallback model and adds support for additional AI provider API keys in the environment setup.
- **Add Fallback Model Configuration (.taskmasterconfig):**
- Implemented a new section in .
- Configured as the default fallback model, enhancing resilience if the primary model fails.
- **Update Default Model Configuration (.taskmasterconfig):**
- Changed the default model to .
- Changed the default model to .
- **Add API Key Examples (assets/env.example):**
- Added example environment variables for:
- (for OpenAI/OpenRouter)
- (for Google Gemini)
- (for XAI Grok)
- Included format comments for clarity.
Introduces a configurable fallback model and adds support for additional AI provider API keys in the environment setup.
- **Add Fallback Model Configuration (.taskmasterconfig):**
- Implemented a new section in .
- Configured as the default fallback model, enhancing resilience if the primary model fails.
- **Update Default Model Configuration (.taskmasterconfig):**
- Changed the default model to .
- Changed the default model to .
- **Add API Key Examples (assets/env.example):**
- Added example environment variables for:
- (for OpenAI/OpenRouter)
- (for Google Gemini)
- (for XAI Grok)
- Included format comments for clarity.
Improves the quality and relevance of research-backed AI operations:
- Tweaks Perplexity AI calls to use max input tokens (8700), temperature 0.1, high context size, and day-fresh search recency.
- Adds a system prompt to guide Perplexity research output.
Docs:
- Updates CLI examples in taskmaster.mdc to use ANSI-C quoting ($'...') for multi-line prompts, ensuring they work correctly in bash/zsh.
Improves the quality and relevance of research-backed AI operations:
- Tweaks Perplexity AI calls to use max input tokens (8700), temperature 0.1, high context size, and day-fresh search recency.
- Adds a system prompt to guide Perplexity research output.
Docs:
- Updates CLI examples in taskmaster.mdc to use ANSI-C quoting ($'...') for multi-line prompts, ensuring they work correctly in bash/zsh.