chore: Adjusts changeset to a user-facing changelog.
This commit is contained in:
@@ -1,39 +1,73 @@
|
||||
# Task ID: 60
|
||||
# Title: Implement isValidTaskId Utility Function
|
||||
# Title: Implement Mentor System with Round-Table Discussion Feature
|
||||
# Status: pending
|
||||
# Dependencies: None
|
||||
# Priority: medium
|
||||
# Description: Create a utility function that validates whether a given string conforms to the project's task ID format specification.
|
||||
# Description: Create a mentor system that allows users to add simulated mentors to their projects and facilitate round-table discussions between these mentors to gain diverse perspectives and insights on tasks.
|
||||
# Details:
|
||||
Develop a function named `isValidTaskId` that takes a string parameter and returns a boolean indicating whether the string matches our task ID format. The task ID format follows these rules:
|
||||
Implement a comprehensive mentor system with the following features:
|
||||
|
||||
1. Must start with 'TASK-' prefix (case-sensitive)
|
||||
2. Followed by a numeric value (at least 1 digit)
|
||||
3. The numeric portion should not have leading zeros (unless it's just zero)
|
||||
4. The total length should be between 6 and 12 characters inclusive
|
||||
1. **Mentor Management**:
|
||||
- Create a `mentors.json` file to store mentor data including name, personality, expertise, and other relevant attributes
|
||||
- Implement `add-mentor` command that accepts a name and prompt describing the mentor's characteristics
|
||||
- Implement `remove-mentor` command to delete mentors from the system
|
||||
- Implement `list-mentors` command to display all configured mentors and their details
|
||||
- Set a recommended maximum of 5 mentors with appropriate warnings
|
||||
|
||||
Example valid IDs: 'TASK-1', 'TASK-42', 'TASK-1000'
|
||||
Example invalid IDs: 'task-1' (wrong case), 'TASK-' (missing number), 'TASK-01' (leading zero), 'TASK-A1' (non-numeric), 'TSK-1' (wrong prefix)
|
||||
2. **Round-Table Discussion**:
|
||||
- Create a `round-table` command with the following parameters:
|
||||
- `--prompt`: Optional text prompt to guide the discussion
|
||||
- `--id`: Optional task/subtask ID(s) to provide context (support comma-separated values)
|
||||
- `--turns`: Number of discussion rounds (each mentor speaks once per turn)
|
||||
- `--output`: Optional flag to export results to a file
|
||||
- Implement an interactive CLI experience using inquirer for the round-table
|
||||
- Generate a simulated discussion where each mentor speaks in turn based on their personality
|
||||
- After all turns complete, generate insights, recommendations, and a summary
|
||||
- Display results in the CLI
|
||||
- When `--output` is specified, create a `round-table.txt` file containing:
|
||||
- Initial prompt
|
||||
- Target task ID(s)
|
||||
- Full round-table discussion transcript
|
||||
- Recommendations and insights section
|
||||
|
||||
The function should be placed in the utilities directory and properly exported. Include JSDoc comments for clear documentation of parameters and return values.
|
||||
3. **Integration with Task System**:
|
||||
- Enhance `update`, `update-task`, and `update-subtask` commands to accept a round-table.txt file
|
||||
- Use the round-table output as input for updating tasks or subtasks
|
||||
- Allow appending round-table insights to subtasks
|
||||
|
||||
4. **LLM Integration**:
|
||||
- Configure the system to effectively simulate different personalities using LLM
|
||||
- Ensure mentors maintain consistent personalities across different round-tables
|
||||
- Implement proper context handling to ensure relevant task information is included
|
||||
|
||||
Ensure all commands have proper help text and error handling for cases like no mentors configured, invalid task IDs, etc.
|
||||
|
||||
# Test Strategy:
|
||||
Testing should include the following cases:
|
||||
1. **Unit Tests**:
|
||||
- Test mentor data structure creation and validation
|
||||
- Test mentor addition with various input formats
|
||||
- Test mentor removal functionality
|
||||
- Test listing of mentors with different configurations
|
||||
- Test round-table parameter parsing and validation
|
||||
|
||||
1. Valid task IDs:
|
||||
- 'TASK-1'
|
||||
- 'TASK-123'
|
||||
- 'TASK-9999'
|
||||
2. **Integration Tests**:
|
||||
- Test the complete flow of adding mentors and running a round-table
|
||||
- Test round-table with different numbers of turns
|
||||
- Test round-table with task context vs. custom prompt
|
||||
- Test output file generation and format
|
||||
- Test using round-table output to update tasks and subtasks
|
||||
|
||||
2. Invalid task IDs:
|
||||
- Null or undefined input
|
||||
- Empty string
|
||||
- 'task-1' (lowercase prefix)
|
||||
- 'TASK-' (missing number)
|
||||
- 'TASK-01' (leading zero)
|
||||
- 'TASK-ABC' (non-numeric suffix)
|
||||
- 'TSK-1' (incorrect prefix)
|
||||
- 'TASK-12345678901' (too long)
|
||||
- 'TASK1' (missing hyphen)
|
||||
3. **Edge Cases**:
|
||||
- Test behavior when no mentors are configured but round-table is called
|
||||
- Test with invalid task IDs in the --id parameter
|
||||
- Test with extremely long discussions (many turns)
|
||||
- Test with mentors that have similar personalities
|
||||
- Test removing a mentor that doesn't exist
|
||||
- Test adding more than the recommended 5 mentors
|
||||
|
||||
Implement unit tests using the project's testing framework. Each test case should have a clear assertion message explaining why the test failed if it does. Also include edge cases such as strings with whitespace ('TASK- 1') or special characters ('TASK-1#').
|
||||
4. **Manual Testing Scenarios**:
|
||||
- Create mentors with distinct personalities (e.g., Vitalik Buterin, Steve Jobs, etc.)
|
||||
- Run a round-table on a complex task and verify the insights are helpful
|
||||
- Verify the personality simulation is consistent and believable
|
||||
- Test the round-table output file readability and usefulness
|
||||
- Verify that using round-table output to update tasks produces meaningful improvements
|
||||
|
||||
Reference in New Issue
Block a user