diff --git a/.cursor/rules/dev_workflow.mdc b/.cursor/rules/dev_workflow.mdc index f48412ad..d18ff776 100644 --- a/.cursor/rules/dev_workflow.mdc +++ b/.cursor/rules/dev_workflow.mdc @@ -19,39 +19,39 @@ Task Master offers two primary ways to interact: 1. **MCP Server (Recommended for Integrated Tools)**: - For AI agents and integrated development environments (like Cursor), interacting via the **MCP server is the preferred method**. - The MCP server exposes Task Master functionality through a set of tools (e.g., `get_tasks`, `add_subtask`). - - This met better performance, structured data exchange, and richer error handling compared to CLI parsing. - - Refer to [`mcp.mdc`](mdc:.cursor/rules/mcp.mdc) for details on ure and available tools. + - This method offers better performance, structured data exchange, and richer error handling compared to CLI parsing. + - Refer to [`mcp.mdc`](mdc:.cursor/rules/mcp.mdc) for details on the MCP architecture and available tools. - A comprehensive list and description of MCP tools and their corresponding CLI commands can be found in [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc). - **Restart the MCP server** if core logic in `scripts/modules` or MCP tool/direct function definitions change. 2. **`task-master` CLI (For Users & Fallback)**: - The global `task-master` command provides a user-friendly interface for direct terminal interaction. - It can also serve as a fallback if the MCP server is inaccessible or a specific function isn't exposed via MCP. - - Install globally with `npm instalai` or use locally via `npx task-master-ai ...`. + - Install globally with `npm install -g task-master-ai` or use locally via `npx task-master-ai ...`. - The CLI commands often mirror the MCP tools (e.g., `task-master list` corresponds to `get_tasks`). - - Refer to [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc) for a deference. + - Refer to [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc) for a detailed command reference. ## Standard Development Workflow Process -- Start new projects by running `initialize_proj-master init` or `parse_prd` / `task-master parse-prd --input=''` (see [`taskmaster.mdc`](mdc:.cursor/rules/to generate initial tasks.json -- Begin coding sessions with `get_tasks` / `task-master list` (see [`taskmaster.mdc`es/taskmaster.mdc)) to see current tasks, status, and IDs -- Determine the next task to work on using `next_task` / `task- [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)). +- Start new projects by running `initialize_project` tool / `task-master init` or `parse_prd` / `task-master parse-prd --input=''` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) to generate initial tasks.json +- Begin coding sessions with `get_tasks` / `task-master list` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) to see current tasks, status, and IDs +- Determine the next task to work on using `next_task` / `task-master next` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)). - Analyze task complexity with `analyze_project_complexity` / `task-master analyze-complexity --research` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) before breaking down tasks -- Revport using `complexity_report` / `task-master complexity-report` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)). -- Select tasks based onl marked 'done'), priority level, and ID order +- Review complexity report using `complexity_report` / `task-master complexity-report` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)). +- Select tasks based on dependencies (all marked 'done'), priority level, and ID order - Clarify tasks by checking task files in tasks/ directory or asking for user input -- View specific task details using `get_task` / `task-master `taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) to understand implementation requirements -- Break down complex tasks using `expand_task` / `task-master expand --id= --frch` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) with appropriate flags like `--force` (to subtasks) and `--research`. +- View specific task details using `get_task` / `task-master show ` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) to understand implementation requirements +- Break down complex tasks using `expand_task` / `task-master expand --id= --force --research` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) with appropriate flags like `--force` (to replace existing subtasks) and `--research`. - Clear existing subtasks if needed using `clear_subtasks` / `task-master clear-subtasks --id=` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) before regenerating -- Impwing task details, dependencies, and project standards -- Verify tasks according to test strategies before marking as completc`](mdc:.cursor/rules/tests.mdc)) -- Mark completed tasks with `set_task_status` / `task-master set-status --id= --prompt="..."` (mdc`](mdc:.cursor/rules/taskmaster.mdc)) +- Implement code following task details, dependencies, and project standards +- Verify tasks according to test strategies before marking as complete (See [`tests.mdc`](mdc:.cursor/rules/tests.mdc)) +- Mark completed tasks with `set_task_status` / `task-master set-status --id= --status=done` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) +- Update dependent tasks when implementation differs from original plan using `update` / `task-master update --from= --prompt="..."` or `update_task` / `task-master update-task --id= --prompt="..."` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) - Add new tasks discovered during implementation using `add_task` / `task-master add-task --prompt="..." --research` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)). -- Add new subtasks as needed using `add_subtask` / `task-master add-subtask --pa="..."` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)). -- Append notes or details to subtasks using `update_subtask` / `task-master update-subtask --id= --prompt='Add implementation notes here...\nMore details...'` (see [`tas:.cursor/rules/taskmaster.mdc)). -- Generate task files with `generate` / `task-master generate` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) sks.json -- Maintain valid dependency structure with `add_dependency`/`remove_dependency` tools or `task-master add-depeependency` commands, `validate_dependencies` / `task-master validate-dependencies`, and `fix_dependencies` / `task-master fix-dependencies` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) when needed +- Add new subtasks as needed using `add_subtask` / `task-master add-subtask --parent= --title="..."` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)). +- Append notes or details to subtasks using `update_subtask` / `task-master update-subtask --id= --prompt='Add implementation notes here...\nMore details...'` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)). +- Generate task files with `generate` / `task-master generate` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) after updating tasks.json +- Maintain valid dependency structure with `add_dependency`/`remove_dependency` tools or `task-master add-dependency`/`remove-dependency` commands, `validate_dependencies` / `task-master validate-dependencies`, and `fix_dependencies` / `task-master fix-dependencies` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) when needed - Respect dependency chains and task priorities when selecting work - Report progress regularly using `get_tasks` / `task-master list` - Reorganize tasks as needed using `move_task` / `task-master move --from= --to=` (see [`taskmaster.mdc`](mdc:.cursor/rules/taskmaster.mdc)) to change task hierarchy or ordering @@ -172,7 +172,7 @@ Taskmaster configuration is managed through two main mechanisms: - Moving multiple tasks at once using comma-separated IDs (e.g., `--from=10,11,12 --to=16,17,18`) - The system includes validation to prevent data loss: - Allows moving to non-existent IDs by creating placeholder tasks - - Prevents m task IDs that have content (to avoid overwriting) + - Prevents moving to existing task IDs that have content (to avoid overwriting) - Validates source tasks exist before attempting to move them - The system maintains proper parent-child relationships and dependency integrity - Task files are automatically regenerated after the move operation