Merge remote changes and resolve conflicts

This commit is contained in:
Eyal Toledano
2025-03-29 17:23:59 -04:00
10 changed files with 1263 additions and 108 deletions

107
.changeset/README.md Normal file
View File

@@ -0,0 +1,107 @@
# Changesets
This folder has been automatically generated by `@changesets/cli`, a build tool that works with multi-package repos or single-package repos to help version and publish code. Full documentation is available in the [Changesets repository](https://github.com/changesets/changesets).
## What are Changesets?
Changesets are a way to track changes to packages in your repository. Each changeset:
- Describes the changes you've made
- Specifies the type of version bump needed (patch, minor, or major)
- Connects these changes with release notes
- Automates the versioning and publishing process
## How to Use Changesets in Task Master
### 2. Making Changes
1. Create a new branch for your changes
2. Make your code changes
3. Write tests and ensure all tests pass
### 3. Creating a Changeset
After making changes, create a changeset by running:
```bash
npx changeset
```
This will:
- Walk you through a CLI to describe your changes
- Ask you to select impact level (patch, minor, major)
- Create a markdown file in the `.changeset` directory
### 4. Impact Level Guidelines
When choosing the impact level for your changes:
- **Patch**: Bug fixes and minor changes that don't affect how users interact with the system
- Example: Fixing a typo in output text, optimizing code without changing behavior
- **Minor**: New features or enhancements that don't break existing functionality
- Example: Adding a new flag to an existing command, adding new task metadata fields
- **Major**: Breaking changes that require users to update their usage
- Example: Renaming a command, changing the format of the tasks.json file
### 5. Writing Good Changeset Descriptions
Your changeset description should:
- Be written for end-users, not developers
- Clearly explain what changed and why
- Include any migration steps or backward compatibility notes
- Reference related issues or pull requests with `#issue-number`
Examples:
```md
# Good
Added new `--research` flag to the `expand` command that uses Perplexity AI
to provide research-backed task expansions. Requires PERPLEXITY_API_KEY
environment variable.
# Not Good
Fixed stuff and added new flag
```
### 6. Committing Your Changes
Commit both your code changes and the generated changeset file:
```bash
git add .
git commit -m "Add feature X with changeset"
git push
```
### 7. Pull Request Process
1. Open a pull request
2. Ensure CI passes
3. Await code review
4. Once approved and merged, your changeset will be used during the next release
## Release Process (for Maintainers)
When it's time to make a release:
1. Ensure all desired changesets are merged
2. Run `npx changeset version` to update package versions and changelog
3. Review and commit the changes
4. Run `npm publish` to publish to npm
This can be automated through Github Actions
## Common Issues and Solutions
- **Merge Conflicts in Changeset Files**: Resolve just like any other merge conflict
- **Multiple Changes in One PR**: Create multiple changesets if changes affect different areas
- **Accidentally Committed Without Changeset**: Create the changeset after the fact and commit it separately
## Additional Resources
- [Changesets Documentation](https://github.com/changesets/changesets)
- [Common Questions](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)

14
.changeset/config.json Normal file
View File

@@ -0,0 +1,14 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "eyaltoledano/claude-task-master" }
],
"commit": false,
"fixed": [],
"linked": [],
"access": "restricted",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}

View File

@@ -0,0 +1,5 @@
---
"task-master-ai": patch
---
Added changeset config #39

View File

@@ -0,0 +1,5 @@
---
"task-master-ai": minor
---
add github actions to automate github and npm releases

View File

@@ -0,0 +1,5 @@
---
"task-master-ai": minor
---
Implement MCP server for all commands using tools.

28
.github/release.yml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: Release
on:
push:
branches:
- main
- next
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Install Dependencies
run: npm install
- name: Create Release Pull Request or Publish to npm
uses: changesets/action@1.4.10
with:
publish: npm run release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -136,7 +136,7 @@ To enable enhanced task management capabilities directly within Cursor using the
4. Configure with the following details: 4. Configure with the following details:
- Name: "Task Master" - Name: "Task Master"
- Type: "Command" - Type: "Command"
- Command: "npx -y task-master-mcp" - Command: "npx -y --package task-master-ai task-master-mcp"
5. Save the settings 5. Save the settings
Once configured, you can interact with Task Master's task management commands directly through Cursor's interface, providing a more integrated experience. Once configured, you can interact with Task Master's task management commands directly through Cursor's interface, providing a more integrated experience.

View File

@@ -136,7 +136,7 @@ To enable enhanced task management capabilities directly within Cursor using the
4. Configure with the following details: 4. Configure with the following details:
- Name: "Task Master" - Name: "Task Master"
- Type: "Command" - Type: "Command"
- Command: "npx -y task-master-mcp" - Command: "npx -y --package task-master-ai task-master-mcp"
5. Save the settings 5. Save the settings
Once configured, you can interact with Task Master's task management commands directly through Cursor's interface, providing a more integrated experience. Once configured, you can interact with Task Master's task management commands directly through Cursor's interface, providing a more integrated experience.
@@ -362,25 +362,6 @@ task-master show 1.2
task-master update --from=<id> --prompt="<prompt>" task-master update --from=<id> --prompt="<prompt>"
``` ```
# Use Perplexity AI for research-backed updates
task-master update --from=<id> --prompt="<prompt>" --research
```
### Update a Single Task
```bash
# Update a specific task with new information
task-master update-task --id=<id> --prompt="<prompt>"
# Use research-backed task updates
task-master update-task --id=<id> --prompt="<prompt>" --research
```
The update-task command:
- Updates a single specified task rather than multiple tasks
- Provides detailed validation and helpful error messages
- Falls back gracefully if research API is unavailable
- Preserves tasks marked as "done"
### Generate Task Files ### Generate Task Files
```bash ```bash
@@ -488,7 +469,7 @@ task-master fix-dependencies
### Add a New Task ### Add a New Task
```bash ````bash
# Add a new task using AI # Add a new task using AI
task-master add-task --prompt="Description of the new task" task-master add-task --prompt="Description of the new task"
@@ -536,7 +517,7 @@ npm install -g task-master-ai
# OR install locally within your project # OR install locally within your project
npm install task-master-ai npm install task-master-ai
``` ````
### Initialize a new project ### Initialize a new project
@@ -630,11 +611,13 @@ Please use the task-master parse-prd command to generate tasks from my PRD. The
``` ```
The agent will execute: The agent will execute:
```bash ```bash
task-master parse-prd scripts/prd.txt task-master parse-prd scripts/prd.txt
``` ```
This will: This will:
- Parse your PRD document - Parse your PRD document
- Generate a structured `tasks.json` file with tasks, dependencies, priorities, and test strategies - Generate a structured `tasks.json` file with tasks, dependencies, priorities, and test strategies
- The agent will understand this process due to the Cursor rules - The agent will understand this process due to the Cursor rules
@@ -648,6 +631,7 @@ Please generate individual task files from tasks.json
``` ```
The agent will execute: The agent will execute:
```bash ```bash
task-master generate task-master generate
``` ```
@@ -667,6 +651,7 @@ What tasks are available to work on next?
``` ```
The agent will: The agent will:
- Run `task-master list` to see all tasks - Run `task-master list` to see all tasks
- Run `task-master next` to determine the next task to work on - Run `task-master next` to determine the next task to work on
- Analyze dependencies to determine which tasks are ready to be worked on - Analyze dependencies to determine which tasks are ready to be worked on
@@ -676,12 +661,14 @@ The agent will:
### 2. Task Implementation ### 2. Task Implementation
When implementing a task, the agent will: When implementing a task, the agent will:
- Reference the task's details section for implementation specifics - Reference the task's details section for implementation specifics
- Consider dependencies on previous tasks - Consider dependencies on previous tasks
- Follow the project's coding standards - Follow the project's coding standards
- Create appropriate tests based on the task's testStrategy - Create appropriate tests based on the task's testStrategy
You can ask: You can ask:
``` ```
Let's implement task 3. What does it involve? Let's implement task 3. What does it involve?
``` ```
@@ -689,6 +676,7 @@ Let's implement task 3. What does it involve?
### 3. Task Verification ### 3. Task Verification
Before marking a task as complete, verify it according to: Before marking a task as complete, verify it according to:
- The task's specified testStrategy - The task's specified testStrategy
- Any automated tests in the codebase - Any automated tests in the codebase
- Manual verification if required - Manual verification if required
@@ -702,6 +690,7 @@ Task 3 is now complete. Please update its status.
``` ```
The agent will execute: The agent will execute:
```bash ```bash
task-master set-status --id=3 --status=done task-master set-status --id=3 --status=done
``` ```
@@ -709,16 +698,19 @@ task-master set-status --id=3 --status=done
### 5. Handling Implementation Drift ### 5. Handling Implementation Drift
If during implementation, you discover that: If during implementation, you discover that:
- The current approach differs significantly from what was planned - The current approach differs significantly from what was planned
- Future tasks need to be modified due to current implementation choices - Future tasks need to be modified due to current implementation choices
- New dependencies or requirements have emerged - New dependencies or requirements have emerged
Tell the agent: Tell the agent:
``` ```
We've changed our approach. We're now using Express instead of Fastify. Please update all future tasks to reflect this change. We've changed our approach. We're now using Express instead of Fastify. Please update all future tasks to reflect this change.
``` ```
The agent will execute: The agent will execute:
```bash ```bash
task-master update --from=4 --prompt="Now we are using Express instead of Fastify." task-master update --from=4 --prompt="Now we are using Express instead of Fastify."
``` ```
@@ -734,36 +726,43 @@ Task 5 seems complex. Can you break it down into subtasks?
``` ```
The agent will execute: The agent will execute:
```bash ```bash
task-master expand --id=5 --num=3 task-master expand --id=5 --num=3
``` ```
You can provide additional context: You can provide additional context:
``` ```
Please break down task 5 with a focus on security considerations. Please break down task 5 with a focus on security considerations.
``` ```
The agent will execute: The agent will execute:
```bash ```bash
task-master expand --id=5 --prompt="Focus on security aspects" task-master expand --id=5 --prompt="Focus on security aspects"
``` ```
You can also expand all pending tasks: You can also expand all pending tasks:
``` ```
Please break down all pending tasks into subtasks. Please break down all pending tasks into subtasks.
``` ```
The agent will execute: The agent will execute:
```bash ```bash
task-master expand --all task-master expand --all
``` ```
For research-backed subtask generation using Perplexity AI: For research-backed subtask generation using Perplexity AI:
``` ```
Please break down task 5 using research-backed generation. Please break down task 5 using research-backed generation.
``` ```
The agent will execute: The agent will execute:
```bash ```bash
task-master expand --id=5 --research task-master expand --id=5 --research
``` ```
@@ -773,6 +772,7 @@ task-master expand --id=5 --research
Here's a comprehensive reference of all available commands: Here's a comprehensive reference of all available commands:
### Parse PRD ### Parse PRD
```bash ```bash
# Parse a PRD file and generate tasks # Parse a PRD file and generate tasks
task-master parse-prd <prd-file.txt> task-master parse-prd <prd-file.txt>
@@ -782,6 +782,7 @@ task-master parse-prd <prd-file.txt> --num-tasks=10
``` ```
### List Tasks ### List Tasks
```bash ```bash
# List all tasks # List all tasks
task-master list task-master list
@@ -797,12 +798,14 @@ task-master list --status=<status> --with-subtasks
``` ```
### Show Next Task ### Show Next Task
```bash ```bash
# Show the next task to work on based on dependencies and status # Show the next task to work on based on dependencies and status
task-master next task-master next
``` ```
### Show Specific Task ### Show Specific Task
```bash ```bash
# Show details of a specific task # Show details of a specific task
task-master show <id> task-master show <id>
@@ -814,18 +817,21 @@ task-master show 1.2
``` ```
### Update Tasks ### Update Tasks
```bash ```bash
# Update tasks from a specific ID and provide context # Update tasks from a specific ID and provide context
task-master update --from=<id> --prompt="<prompt>" task-master update --from=<id> --prompt="<prompt>"
``` ```
### Generate Task Files ### Generate Task Files
```bash ```bash
# Generate individual task files from tasks.json # Generate individual task files from tasks.json
task-master generate task-master generate
``` ```
### Set Task Status ### Set Task Status
```bash ```bash
# Set status of a single task # Set status of a single task
task-master set-status --id=<id> --status=<status> task-master set-status --id=<id> --status=<status>
@@ -840,6 +846,7 @@ task-master set-status --id=1.1,1.2 --status=<status>
When marking a task as "done", all of its subtasks will automatically be marked as "done" as well. When marking a task as "done", all of its subtasks will automatically be marked as "done" as well.
### Expand Tasks ### Expand Tasks
```bash ```bash
# Expand a specific task with subtasks # Expand a specific task with subtasks
task-master expand --id=<id> --num=<number> task-master expand --id=<id> --num=<number>
@@ -861,6 +868,7 @@ task-master expand --all --research
``` ```
### Clear Subtasks ### Clear Subtasks
```bash ```bash
# Clear subtasks from a specific task # Clear subtasks from a specific task
task-master clear-subtasks --id=<id> task-master clear-subtasks --id=<id>
@@ -873,6 +881,7 @@ task-master clear-subtasks --all
``` ```
### Analyze Task Complexity ### Analyze Task Complexity
```bash ```bash
# Analyze complexity of all tasks # Analyze complexity of all tasks
task-master analyze-complexity task-master analyze-complexity
@@ -894,6 +903,7 @@ task-master analyze-complexity --research
``` ```
### View Complexity Report ### View Complexity Report
```bash ```bash
# Display the task complexity analysis report # Display the task complexity analysis report
task-master complexity-report task-master complexity-report
@@ -903,6 +913,7 @@ task-master complexity-report --file=my-report.json
``` ```
### Managing Task Dependencies ### Managing Task Dependencies
```bash ```bash
# Add a dependency to a task # Add a dependency to a task
task-master add-dependency --id=<id> --depends-on=<id> task-master add-dependency --id=<id> --depends-on=<id>
@@ -918,6 +929,7 @@ task-master fix-dependencies
``` ```
### Add a New Task ### Add a New Task
```bash ```bash
# Add a new task using AI # Add a new task using AI
task-master add-task --prompt="Description of the new task" task-master add-task --prompt="Description of the new task"

1142
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -15,8 +15,9 @@
"test:coverage": "node --experimental-vm-modules node_modules/.bin/jest --coverage", "test:coverage": "node --experimental-vm-modules node_modules/.bin/jest --coverage",
"prepare-package": "node scripts/prepare-package.js", "prepare-package": "node scripts/prepare-package.js",
"prepublishOnly": "npm run prepare-package", "prepublishOnly": "npm run prepare-package",
"prepare": "chmod +x bin/task-master.js bin/task-master-init.js mcp-server/server.js", "prepare": "chmod +x bin/task-master.js bin/task-master-init.js",
"mcp-server": "node mcp-server/server.js" "changeset": "changeset",
"release": "changeset publish"
}, },
"keywords": [ "keywords": [
"claude", "claude",
@@ -77,6 +78,8 @@
"whatwg-url": "^11.0.0" "whatwg-url": "^11.0.0"
}, },
"devDependencies": { "devDependencies": {
"@changesets/changelog-github": "^0.5.1",
"@changesets/cli": "^2.28.1",
"@types/jest": "^29.5.14", "@types/jest": "^29.5.14",
"jest": "^29.7.0", "jest": "^29.7.0",
"jest-environment-node": "^29.7.0", "jest-environment-node": "^29.7.0",