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:
- Name: "Task Master"
- Type: "Command"
- Command: "npx -y task-master-mcp"
- Command: "npx -y --package task-master-ai task-master-mcp"
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.

View File

@@ -136,7 +136,7 @@ To enable enhanced task management capabilities directly within Cursor using the
4. Configure with the following details:
- Name: "Task Master"
- Type: "Command"
- Command: "npx -y task-master-mcp"
- Command: "npx -y --package task-master-ai task-master-mcp"
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.
@@ -362,25 +362,6 @@ task-master show 1.2
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
```bash
@@ -488,7 +469,7 @@ task-master fix-dependencies
### Add a New Task
```bash
````bash
# Add a new task using AI
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
npm install task-master-ai
```
````
### 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:
```bash
task-master parse-prd scripts/prd.txt
```
This will:
- Parse your PRD document
- Generate a structured `tasks.json` file with tasks, dependencies, priorities, and test strategies
- 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:
```bash
task-master generate
```
@@ -667,6 +651,7 @@ What tasks are available to work on next?
```
The agent will:
- Run `task-master list` to see all tasks
- Run `task-master next` to determine the next task to work on
- Analyze dependencies to determine which tasks are ready to be worked on
@@ -676,12 +661,14 @@ The agent will:
### 2. Task Implementation
When implementing a task, the agent will:
- Reference the task's details section for implementation specifics
- Consider dependencies on previous tasks
- Follow the project's coding standards
- Create appropriate tests based on the task's testStrategy
You can ask:
```
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
Before marking a task as complete, verify it according to:
- The task's specified testStrategy
- Any automated tests in the codebase
- Manual verification if required
@@ -702,6 +690,7 @@ Task 3 is now complete. Please update its status.
```
The agent will execute:
```bash
task-master set-status --id=3 --status=done
```
@@ -709,16 +698,19 @@ task-master set-status --id=3 --status=done
### 5. Handling Implementation Drift
If during implementation, you discover that:
- The current approach differs significantly from what was planned
- Future tasks need to be modified due to current implementation choices
- New dependencies or requirements have emerged
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.
```
The agent will execute:
```bash
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:
```bash
task-master expand --id=5 --num=3
```
You can provide additional context:
```
Please break down task 5 with a focus on security considerations.
```
The agent will execute:
```bash
task-master expand --id=5 --prompt="Focus on security aspects"
```
You can also expand all pending tasks:
```
Please break down all pending tasks into subtasks.
```
The agent will execute:
```bash
task-master expand --all
```
For research-backed subtask generation using Perplexity AI:
```
Please break down task 5 using research-backed generation.
```
The agent will execute:
```bash
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:
### Parse PRD
```bash
# Parse a PRD file and generate tasks
task-master parse-prd <prd-file.txt>
@@ -782,6 +782,7 @@ task-master parse-prd <prd-file.txt> --num-tasks=10
```
### List Tasks
```bash
# List all tasks
task-master list
@@ -797,12 +798,14 @@ task-master list --status=<status> --with-subtasks
```
### Show Next Task
```bash
# Show the next task to work on based on dependencies and status
task-master next
```
### Show Specific Task
```bash
# Show details of a specific task
task-master show <id>
@@ -814,18 +817,21 @@ task-master show 1.2
```
### Update Tasks
```bash
# Update tasks from a specific ID and provide context
task-master update --from=<id> --prompt="<prompt>"
```
### Generate Task Files
```bash
# Generate individual task files from tasks.json
task-master generate
```
### Set Task Status
```bash
# Set status of a single task
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.
### Expand Tasks
```bash
# Expand a specific task with subtasks
task-master expand --id=<id> --num=<number>
@@ -861,6 +868,7 @@ task-master expand --all --research
```
### Clear Subtasks
```bash
# Clear subtasks from a specific task
task-master clear-subtasks --id=<id>
@@ -873,6 +881,7 @@ task-master clear-subtasks --all
```
### Analyze Task Complexity
```bash
# Analyze complexity of all tasks
task-master analyze-complexity
@@ -894,6 +903,7 @@ task-master analyze-complexity --research
```
### View Complexity Report
```bash
# Display the task complexity analysis report
task-master complexity-report
@@ -903,6 +913,7 @@ task-master complexity-report --file=my-report.json
```
### Managing Task Dependencies
```bash
# Add a dependency to a task
task-master add-dependency --id=<id> --depends-on=<id>
@@ -918,6 +929,7 @@ task-master fix-dependencies
```
### Add a New Task
```bash
# Add a new task using AI
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",
"prepare-package": "node scripts/prepare-package.js",
"prepublishOnly": "npm run prepare-package",
"prepare": "chmod +x bin/task-master.js bin/task-master-init.js mcp-server/server.js",
"mcp-server": "node mcp-server/server.js"
"prepare": "chmod +x bin/task-master.js bin/task-master-init.js",
"changeset": "changeset",
"release": "changeset publish"
},
"keywords": [
"claude",
@@ -77,6 +78,8 @@
"whatwg-url": "^11.0.0"
},
"devDependencies": {
"@changesets/changelog-github": "^0.5.1",
"@changesets/cli": "^2.28.1",
"@types/jest": "^29.5.14",
"jest": "^29.7.0",
"jest-environment-node": "^29.7.0",