Refactor: Modularize Task Master CLI into Modules Directory
Simplified the Task Master CLI by organizing code into modules within the directory. **Why:** - **Better Organization:** Code is now grouped by function (AI, commands, dependencies, tasks, UI, utilities). - **Easier to Maintain:** Smaller modules are simpler to update and fix. - **Scalable:** New features can be added more easily in a structured way. **What Changed:** - Moved code from single _____ _ __ __ _ |_ _|_ _ ___| | __ | \/ | __ _ ___| |_ ___ _ __ | |/ _` / __| |/ / | |\/| |/ _` / __| __/ _ \ '__| | | (_| \__ \ < | | | | (_| \__ \ || __/ | |_|\__,_|___/_|\_\ |_| |_|\__,_|___/\__\___|_| by https://x.com/eyaltoledano ╭────────────────────────────────────────────╮ │ │ │ Version: 0.9.16 Project: Task Master │ │ │ ╰────────────────────────────────────────────╯ ╭─────────────────────╮ │ │ │ Task Master CLI │ │ │ ╰─────────────────────╯ ╭───────────────────╮ │ Task Generation │ ╰───────────────────╯ parse-prd --input=<file.txt> [--tasks=10] Generate tasks from a PRD document generate Create individual task files from tasks… ╭───────────────────╮ │ Task Management │ ╰───────────────────╯ list [--status=<status>] [--with-subtas… List all tasks with their status set-status --id=<id> --status=<status> Update task status (done, pending, etc.) update --from=<id> --prompt="<context>" Update tasks based on new requirements add-task --prompt="<text>" [--dependencies=… Add a new task using AI add-dependency --id=<id> --depends-on=<id> Add a dependency to a task remove-dependency --id=<id> --depends-on=<id> Remove a dependency from a task ╭──────────────────────────╮ │ Task Analysis & Detail │ ╰──────────────────────────╯ analyze-complexity [--research] [--threshold=5] Analyze tasks and generate expansion re… complexity-report [--file=<path>] Display the complexity analysis report expand --id=<id> [--num=5] [--research] [… Break down tasks into detailed subtasks expand --all [--force] [--research] Expand all pending tasks with subtasks clear-subtasks --id=<id> Remove subtasks from specified tasks ╭─────────────────────────────╮ │ Task Navigation & Viewing │ ╰─────────────────────────────╯ next Show the next task to work on based on … show <id> Display detailed information about a sp… ╭─────────────────────────╮ │ Dependency Management │ ╰─────────────────────────╯ validate-dependenci… Identify invalid dependencies without f… fix-dependencies Fix invalid dependencies automatically ╭─────────────────────────╮ │ Environment Variables │ ╰─────────────────────────╯ ANTHROPIC_API_KEY Your Anthropic API key Required MODEL Claude model to use Default: claude-3-7-sonn… MAX_TOKENS Maximum tokens for responses Default: 4000 TEMPERATURE Temperature for model responses Default: 0.7 PERPLEXITY_API_KEY Perplexity API key for research Optional PERPLEXITY_MODEL Perplexity model to use Default: sonar-small-onl… DEBUG Enable debug logging Default: false LOG_LEVEL Console output level (debug,info,warn,error) Default: info DEFAULT_SUBTASKS Default number of subtasks to generate Default: 3 DEFAULT_PRIORITY Default task priority Default: medium PROJECT_NAME Project name displayed in UI Default: Task Master file into these new modules: - : AI interactions (Claude, Perplexity) - : CLI command definitions (Commander.js) - : Task dependency handling - : Core task operations (create, list, update, etc.) - : User interface elements (display, formatting) - : Utility functions and configuration - : Exports all modules - Replaced direct use of _____ _ __ __ _ |_ _|_ _ ___| | __ | \/ | __ _ ___| |_ ___ _ __ | |/ _` / __| |/ / | |\/| |/ _` / __| __/ _ \ '__| | | (_| \__ \ < | | | | (_| \__ \ || __/ | |_|\__,_|___/_|\_\ |_| |_|\__,_|___/\__\___|_| by https://x.com/eyaltoledano ╭────────────────────────────────────────────╮ │ │ │ Version: 0.9.16 Project: Task Master │ │ │ ╰────────────────────────────────────────────╯ ╭─────────────────────╮ │ │ │ Task Master CLI │ │ │ ╰─────────────────────╯ ╭───────────────────╮ │ Task Generation │ ╰───────────────────╯ parse-prd --input=<file.txt> [--tasks=10] Generate tasks from a PRD document generate Create individual task files from tasks… ╭───────────────────╮ │ Task Management │ ╰───────────────────╯ list [--status=<status>] [--with-subtas… List all tasks with their status set-status --id=<id> --status=<status> Update task status (done, pending, etc.) update --from=<id> --prompt="<context>" Update tasks based on new requirements add-task --prompt="<text>" [--dependencies=… Add a new task using AI add-dependency --id=<id> --depends-on=<id> Add a dependency to a task remove-dependency --id=<id> --depends-on=<id> Remove a dependency from a task ╭──────────────────────────╮ │ Task Analysis & Detail │ ╰──────────────────────────╯ analyze-complexity [--research] [--threshold=5] Analyze tasks and generate expansion re… complexity-report [--file=<path>] Display the complexity analysis report expand --id=<id> [--num=5] [--research] [… Break down tasks into detailed subtasks expand --all [--force] [--research] Expand all pending tasks with subtasks clear-subtasks --id=<id> Remove subtasks from specified tasks ╭─────────────────────────────╮ │ Task Navigation & Viewing │ ╰─────────────────────────────╯ next Show the next task to work on based on … show <id> Display detailed information about a sp… ╭─────────────────────────╮ │ Dependency Management │ ╰─────────────────────────╯ validate-dependenci… Identify invalid dependencies without f… fix-dependencies Fix invalid dependencies automatically ╭─────────────────────────╮ │ Environment Variables │ ╰─────────────────────────╯ ANTHROPIC_API_KEY Your Anthropic API key Required MODEL Claude model to use Default: claude-3-7-sonn… MAX_TOKENS Maximum tokens for responses Default: 4000 TEMPERATURE Temperature for model responses Default: 0.7 PERPLEXITY_API_KEY Perplexity API key for research Optional PERPLEXITY_MODEL Perplexity model to use Default: sonar-small-onl… DEBUG Enable debug logging Default: false LOG_LEVEL Console output level (debug,info,warn,error) Default: info DEFAULT_SUBTASKS Default number of subtasks to generate Default: 3 DEFAULT_PRIORITY Default task priority Default: medium PROJECT_NAME Project name displayed in UI Default: Task Master with the global command (see ). - Updated documentation () to reflect the new command. **Benefits:** Code is now cleaner, easier to work with, and ready for future growth. Use the command (or ) to run the CLI. See for command details.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Task ID: 6
|
||||
# Title: Build PRD Parsing System
|
||||
# Status: done
|
||||
# Dependencies: 1 ✅, 5 ✅
|
||||
# Dependencies: ✅ 1 (done), ✅ 5 (done)
|
||||
# Priority: high
|
||||
# Description: Create the system for parsing Product Requirements Documents into structured task lists.
|
||||
# Details:
|
||||
@@ -17,75 +17,39 @@ Implement PRD parsing functionality including:
|
||||
Test with sample PRDs of varying complexity. Verify that generated tasks accurately reflect the requirements in the PRD. Check that dependencies and priorities are logically assigned.
|
||||
|
||||
# Subtasks:
|
||||
## Subtask ID: 1
|
||||
## Title: Implement PRD File Reading Module
|
||||
## Status: done
|
||||
## Dependencies: None
|
||||
## Description: Create a module that can read PRD files from a specified file path. The module should handle different file formats (txt, md, docx) and extract the text content. Implement error handling for file not found, permission issues, and invalid file formats. Add support for encoding detection and proper text extraction to ensure the content is correctly processed regardless of the source format.
|
||||
## Acceptance Criteria:
|
||||
- Function accepts a file path and returns the PRD content as a string
|
||||
- Supports at least .txt and .md file formats (with extensibility for others)
|
||||
- Implements robust error handling with meaningful error messages
|
||||
- Successfully reads files of various sizes (up to 10MB)
|
||||
- Preserves formatting where relevant for parsing (headings, lists, code blocks)
|
||||
## 1. Implement PRD File Reading Module [done]
|
||||
### Dependencies: None
|
||||
### Description: Create a module that can read PRD files from a specified file path. The module should handle different file formats (txt, md, docx) and extract the text content. Implement error handling for file not found, permission issues, and invalid file formats. Add support for encoding detection and proper text extraction to ensure the content is correctly processed regardless of the source format.
|
||||
### Details:
|
||||
|
||||
## Subtask ID: 2
|
||||
## Title: Design and Engineer Effective PRD Parsing Prompts
|
||||
## Status: done
|
||||
## Dependencies: None
|
||||
## Description: Create a set of carefully engineered prompts for Claude API that effectively extract structured task information from PRD content. Design prompts that guide Claude to identify tasks, dependencies, priorities, and implementation details from unstructured PRD text. Include system prompts, few-shot examples, and output format specifications to ensure consistent results.
|
||||
## Acceptance Criteria:
|
||||
- At least 3 different prompt templates optimized for different PRD styles/formats
|
||||
- Prompts include clear instructions for identifying tasks, dependencies, and priorities
|
||||
- Output format specification ensures Claude returns structured, parseable data
|
||||
- Includes few-shot examples to guide Claude's understanding
|
||||
- Prompts are optimized for token efficiency while maintaining effectiveness
|
||||
|
||||
## Subtask ID: 3
|
||||
## Title: Implement PRD to Task Conversion System
|
||||
## Status: done
|
||||
## Dependencies: 6.1 ✅
|
||||
## Description: Develop the core functionality that sends PRD content to Claude API and converts the response into the task data structure. This includes sending the engineered prompts with PRD content to Claude, parsing the structured response, and transforming it into valid task objects that conform to the task model. Implement validation to ensure the generated tasks meet all requirements.
|
||||
## Acceptance Criteria:
|
||||
- Successfully sends PRD content to Claude API with appropriate prompts
|
||||
- Parses Claude's response into structured task objects
|
||||
- Validates generated tasks against the task model schema
|
||||
- Handles API errors and response parsing failures gracefully
|
||||
- Generates unique and sequential task IDs
|
||||
## 2. Design and Engineer Effective PRD Parsing Prompts [done]
|
||||
### Dependencies: None
|
||||
### Description: Create a set of carefully engineered prompts for Claude API that effectively extract structured task information from PRD content. Design prompts that guide Claude to identify tasks, dependencies, priorities, and implementation details from unstructured PRD text. Include system prompts, few-shot examples, and output format specifications to ensure consistent results.
|
||||
### Details:
|
||||
|
||||
## Subtask ID: 4
|
||||
## Title: Build Intelligent Dependency Inference System
|
||||
## Status: done
|
||||
## Dependencies: 6.1 ✅, 6.3 ✅
|
||||
## Description: Create an algorithm that analyzes the generated tasks and infers logical dependencies between them. The system should identify which tasks must be completed before others based on the content and context of each task. Implement both explicit dependency detection (from Claude's output) and implicit dependency inference (based on task relationships and logical ordering).
|
||||
## Acceptance Criteria:
|
||||
- Correctly identifies explicit dependencies mentioned in task descriptions
|
||||
- Infers implicit dependencies based on task context and relationships
|
||||
- Prevents circular dependencies in the task graph
|
||||
- Provides confidence scores for inferred dependencies
|
||||
- Allows for manual override/adjustment of detected dependencies
|
||||
|
||||
## Subtask ID: 5
|
||||
## Title: Implement Priority Assignment Logic
|
||||
## Status: done
|
||||
## Dependencies: 6.1 ✅, 6.3 ✅
|
||||
## Description: Develop a system that assigns appropriate priorities (high, medium, low) to tasks based on their content, dependencies, and position in the PRD. Create algorithms that analyze task descriptions, identify critical path tasks, and consider factors like technical risk and business value. Implement both automated priority assignment and manual override capabilities.
|
||||
## Acceptance Criteria:
|
||||
- Assigns priorities based on multiple factors (dependencies, critical path, risk)
|
||||
- Identifies foundation/infrastructure tasks as high priority
|
||||
- Balances priorities across the project (not everything is high priority)
|
||||
- Provides justification for priority assignments
|
||||
- Allows for manual adjustment of priorities
|
||||
## 3. Implement PRD to Task Conversion System [done]
|
||||
### Dependencies: 1 (done)
|
||||
### Description: Develop the core functionality that sends PRD content to Claude API and converts the response into the task data structure. This includes sending the engineered prompts with PRD content to Claude, parsing the structured response, and transforming it into valid task objects that conform to the task model. Implement validation to ensure the generated tasks meet all requirements.
|
||||
### Details:
|
||||
|
||||
|
||||
## 4. Build Intelligent Dependency Inference System [done]
|
||||
### Dependencies: 1 (done), 3 (done)
|
||||
### Description: Create an algorithm that analyzes the generated tasks and infers logical dependencies between them. The system should identify which tasks must be completed before others based on the content and context of each task. Implement both explicit dependency detection (from Claude's output) and implicit dependency inference (based on task relationships and logical ordering).
|
||||
### Details:
|
||||
|
||||
|
||||
## 5. Implement Priority Assignment Logic [done]
|
||||
### Dependencies: 1 (done), 3 (done)
|
||||
### Description: Develop a system that assigns appropriate priorities (high, medium, low) to tasks based on their content, dependencies, and position in the PRD. Create algorithms that analyze task descriptions, identify critical path tasks, and consider factors like technical risk and business value. Implement both automated priority assignment and manual override capabilities.
|
||||
### Details:
|
||||
|
||||
|
||||
## 6. Implement PRD Chunking for Large Documents [done]
|
||||
### Dependencies: 1 (done), 5 (done), 3 (done)
|
||||
### Description: Create a system that can handle large PRDs by breaking them into manageable chunks for processing. Implement intelligent document segmentation that preserves context across chunks, tracks section relationships, and maintains coherence in the generated tasks. Develop a mechanism to reassemble and deduplicate tasks generated from different chunks into a unified task list.
|
||||
### Details:
|
||||
|
||||
|
||||
## Subtask ID: 6
|
||||
## Title: Implement PRD Chunking for Large Documents
|
||||
## Status: done
|
||||
## Dependencies: 6.1 ✅, 6.5 ✅, 6.3 ✅
|
||||
## Description: Create a system that can handle large PRDs by breaking them into manageable chunks for processing. Implement intelligent document segmentation that preserves context across chunks, tracks section relationships, and maintains coherence in the generated tasks. Develop a mechanism to reassemble and deduplicate tasks generated from different chunks into a unified task list.
|
||||
## Acceptance Criteria:
|
||||
- Successfully processes PRDs larger than Claude's context window
|
||||
- Intelligently splits documents at logical boundaries (sections, chapters)
|
||||
- Preserves context when processing individual chunks
|
||||
- Reassembles tasks from multiple chunks into a coherent task list
|
||||
- Detects and resolves duplicate or overlapping tasks
|
||||
- Maintains correct dependency relationships across chunks
|
||||
|
||||
Reference in New Issue
Block a user