@langadventurellc/task-trellis-mcp 1.1.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -323
- package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.js +533 -0
- package/dist/__tests__/e2e/autoPrune.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/configuration/activation.e2e.test.js +6 -6
- package/dist/__tests__/e2e/configuration/activation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js +55 -6
- package/dist/__tests__/e2e/configuration/commandLineArgs.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js +19 -19
- package/dist/__tests__/e2e/configuration/directorySetup.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js +9 -9
- package/dist/__tests__/e2e/configuration/invalidConfig.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js +15 -15
- package/dist/__tests__/e2e/configuration/preActivation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js +34 -34
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js +19 -19
- package/dist/__tests__/e2e/crud/deleteObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js +32 -32
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js +143 -22
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/listObjects.e2e.test.js +561 -42
- package/dist/__tests__/e2e/crud/listObjects.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/updateObject.e2e.test.js +497 -25
- package/dist/__tests__/e2e/crud/updateObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js +319 -0
- package/dist/__tests__/e2e/hierarchicalPrerequisites.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/infrastructure/client.e2e.test.js +4 -4
- package/dist/__tests__/e2e/infrastructure/client.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/infrastructure/server.e2e.test.js +6 -6
- package/dist/__tests__/e2e/infrastructure/server.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/utils/extractObjectIds.d.ts +1 -1
- package/dist/__tests__/e2e/utils/extractObjectIds.js +1 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.d.ts.map +1 -1
- package/dist/__tests__/e2e/utils/mcpTestClient.js +3 -2
- package/dist/__tests__/e2e/utils/mcpTestClient.js.map +1 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.d.ts +1 -1
- package/dist/__tests__/e2e/utils/parseListObjectsResponse.js +1 -1
- package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.d.ts +1 -1
- package/dist/__tests__/e2e/utils/parseUpdateObjectResponse.js +1 -1
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +4 -4
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +15 -15
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js +44 -0
- package/dist/__tests__/e2e/workflow/claimTask.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js +4 -4
- package/dist/__tests__/e2e/workflow/completeTask.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js +43 -43
- package/dist/__tests__/e2e/workflow/prerequisites.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +19 -19
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
- package/dist/__tests__/serverStartup.test.d.ts +2 -0
- package/dist/__tests__/serverStartup.test.d.ts.map +1 -0
- package/dist/__tests__/serverStartup.test.js +171 -0
- package/dist/__tests__/serverStartup.test.js.map +1 -0
- package/dist/configuration/ServerConfig.d.ts +2 -1
- package/dist/configuration/ServerConfig.d.ts.map +1 -1
- package/dist/repositories/Repository.d.ts +2 -1
- package/dist/repositories/Repository.d.ts.map +1 -1
- package/dist/repositories/local/LocalRepository.d.ts +2 -1
- package/dist/repositories/local/LocalRepository.d.ts.map +1 -1
- package/dist/repositories/local/LocalRepository.js +4 -0
- package/dist/repositories/local/LocalRepository.js.map +1 -1
- package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts +2 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.d.ts.map +1 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.js +306 -0
- package/dist/repositories/local/__tests__/getChildrenOf.test.js.map +1 -0
- package/dist/repositories/local/__tests__/getObjects.test.js +309 -0
- package/dist/repositories/local/__tests__/getObjects.test.js.map +1 -1
- package/dist/repositories/local/deleteObjectById.d.ts.map +1 -1
- package/dist/repositories/local/deleteObjectById.js +2 -0
- package/dist/repositories/local/deleteObjectById.js.map +1 -1
- package/dist/repositories/local/getChildrenOf.d.ts +11 -0
- package/dist/repositories/local/getChildrenOf.d.ts.map +1 -0
- package/dist/repositories/local/getChildrenOf.js +73 -0
- package/dist/repositories/local/getChildrenOf.js.map +1 -0
- package/dist/repositories/local/getObjects.d.ts +1 -1
- package/dist/repositories/local/getObjects.d.ts.map +1 -1
- package/dist/repositories/local/getObjects.js +25 -6
- package/dist/repositories/local/getObjects.js.map +1 -1
- package/dist/server.js +39 -15
- package/dist/server.js.map +1 -1
- package/dist/services/TaskTrellisService.d.ts +4 -13
- package/dist/services/TaskTrellisService.d.ts.map +1 -1
- package/dist/services/local/LocalTaskTrellisService.d.ts +3 -9
- package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -1
- package/dist/services/local/LocalTaskTrellisService.js +4 -8
- package/dist/services/local/LocalTaskTrellisService.js.map +1 -1
- package/dist/services/local/__tests__/appendModifiedFiles.test.js +1 -0
- package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -1
- package/dist/services/local/__tests__/appendObjectLog.test.js +1 -0
- package/dist/services/local/__tests__/appendObjectLog.test.js.map +1 -1
- package/dist/services/local/__tests__/claimTask.test.js +127 -131
- package/dist/services/local/__tests__/claimTask.test.js.map +1 -1
- package/dist/services/local/__tests__/completeTask.test.js +30 -28
- package/dist/services/local/__tests__/completeTask.test.js.map +1 -1
- package/dist/services/local/__tests__/createObject.test.js +1 -0
- package/dist/services/local/__tests__/createObject.test.js.map +1 -1
- package/dist/services/local/__tests__/listObjects.test.js +135 -10
- package/dist/services/local/__tests__/listObjects.test.js.map +1 -1
- package/dist/services/local/__tests__/pruneClosed.test.js +446 -186
- package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -1
- package/dist/services/local/__tests__/updateObject.test.js +234 -27
- package/dist/services/local/__tests__/updateObject.test.js.map +1 -1
- package/dist/services/local/claimTask.d.ts.map +1 -1
- package/dist/services/local/claimTask.js +25 -34
- package/dist/services/local/claimTask.js.map +1 -1
- package/dist/services/local/completeTask.d.ts +1 -1
- package/dist/services/local/completeTask.d.ts.map +1 -1
- package/dist/services/local/completeTask.js +4 -40
- package/dist/services/local/completeTask.js.map +1 -1
- package/dist/services/local/listObjects.d.ts +1 -1
- package/dist/services/local/listObjects.d.ts.map +1 -1
- package/dist/services/local/listObjects.js +10 -1
- package/dist/services/local/listObjects.js.map +1 -1
- package/dist/services/local/pruneClosed.d.ts.map +1 -1
- package/dist/services/local/pruneClosed.js +63 -6
- package/dist/services/local/pruneClosed.js.map +1 -1
- package/dist/services/local/updateObject.d.ts +2 -1
- package/dist/services/local/updateObject.d.ts.map +1 -1
- package/dist/services/local/updateObject.js +28 -1
- package/dist/services/local/updateObject.js.map +1 -1
- package/dist/tools/__tests__/appendModifiedFilesTool.test.js +1 -0
- package/dist/tools/__tests__/appendModifiedFilesTool.test.js.map +1 -1
- package/dist/tools/__tests__/appendObjectLogTool.test.js +1 -0
- package/dist/tools/__tests__/appendObjectLogTool.test.js.map +1 -1
- package/dist/tools/__tests__/claimTaskTool.test.js +1 -1
- package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/completeTaskTool.test.js +23 -16
- package/dist/tools/__tests__/completeTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/createObjectTool.test.js +1 -0
- package/dist/tools/__tests__/createObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/deleteObjectTool.test.js +1 -0
- package/dist/tools/__tests__/deleteObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/getObjectTool.test.js +1 -0
- package/dist/tools/__tests__/getObjectTool.test.js.map +1 -1
- package/dist/tools/__tests__/listObjectsTool.test.js +160 -1
- package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
- package/dist/tools/__tests__/updateObjectTool.test.js +39 -10
- package/dist/tools/__tests__/updateObjectTool.test.js.map +1 -1
- package/dist/tools/appendModifiedFilesTool.d.ts +2 -2
- package/dist/tools/appendModifiedFilesTool.js +4 -4
- package/dist/tools/appendModifiedFilesTool.js.map +1 -1
- package/dist/tools/appendObjectLogTool.d.ts +3 -3
- package/dist/tools/appendObjectLogTool.js +4 -4
- package/dist/tools/appendObjectLogTool.js.map +1 -1
- package/dist/tools/completeTaskTool.d.ts +1 -1
- package/dist/tools/completeTaskTool.d.ts.map +1 -1
- package/dist/tools/completeTaskTool.js +1 -1
- package/dist/tools/completeTaskTool.js.map +1 -1
- package/dist/tools/createObjectTool.d.ts +8 -8
- package/dist/tools/createObjectTool.js +13 -13
- package/dist/tools/createObjectTool.js.map +1 -1
- package/dist/tools/deleteObjectTool.d.ts +3 -3
- package/dist/tools/deleteObjectTool.js +12 -12
- package/dist/tools/deleteObjectTool.js.map +1 -1
- package/dist/tools/getObjectTool.d.ts +3 -3
- package/dist/tools/getObjectTool.d.ts.map +1 -1
- package/dist/tools/getObjectTool.js +12 -7
- package/dist/tools/getObjectTool.js.map +1 -1
- package/dist/tools/index.d.ts +7 -9
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +22 -28
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/listObjectsTool.d.ts +20 -11
- package/dist/tools/listObjectsTool.d.ts.map +1 -1
- package/dist/tools/listObjectsTool.js +112 -40
- package/dist/tools/listObjectsTool.js.map +1 -1
- package/dist/tools/updateObjectTool.d.ts +12 -7
- package/dist/tools/updateObjectTool.d.ts.map +1 -1
- package/dist/tools/updateObjectTool.js +20 -14
- package/dist/tools/updateObjectTool.js.map +1 -1
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts +2 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.d.ts.map +1 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +206 -0
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +5 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
- package/dist/utils/__tests__/filterUnavailableObjects.test.js +51 -25
- package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +5 -0
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
- package/dist/utils/__tests__/updateParentHierarchy.test.d.ts +2 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.d.ts.map +1 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.js +137 -0
- package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -0
- package/dist/utils/autoCompleteParentHierarchy.d.ts +11 -0
- package/dist/utils/autoCompleteParentHierarchy.d.ts.map +1 -0
- package/dist/utils/autoCompleteParentHierarchy.js +49 -0
- package/dist/utils/autoCompleteParentHierarchy.js.map +1 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts +14 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.d.ts.map +1 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.js +47 -0
- package/dist/utils/checkHierarchicalPrerequisitesComplete.js.map +1 -0
- package/dist/utils/filterUnavailableObjects.d.ts +6 -4
- package/dist/utils/filterUnavailableObjects.d.ts.map +1 -1
- package/dist/utils/filterUnavailableObjects.js +16 -22
- package/dist/utils/filterUnavailableObjects.js.map +1 -1
- package/dist/utils/index.d.ts +3 -2
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -3
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/updateParentHierarchy.d.ts +11 -0
- package/dist/utils/updateParentHierarchy.d.ts.map +1 -0
- package/dist/utils/updateParentHierarchy.js +40 -0
- package/dist/utils/updateParentHierarchy.js.map +1 -0
- package/dist/validation/__tests__/validateObjectCreation.test.js +1 -0
- package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
- package/dist/validation/__tests__/validateParentExists.test.js +1 -0
- package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
- package/dist/validation/__tests__/validateStatusTransition.test.js +1 -0
- package/dist/validation/__tests__/validateStatusTransition.test.js.map +1 -1
- package/package.json +1 -1
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js +0 -693
- package/dist/__tests__/e2e/crud/replaceObjectBodyRegex.e2e.test.js.map +0 -1
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts +0 -2
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.d.ts.map +0 -1
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js +0 -352
- package/dist/__tests__/e2e/workflow/pruneClosed.e2e.test.js.map +0 -1
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts +0 -2
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.d.ts.map +0 -1
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js +0 -283
- package/dist/services/local/__tests__/replaceObjectBodyRegex.test.js.map +0 -1
- package/dist/services/local/replaceObjectBodyRegex.d.ts +0 -8
- package/dist/services/local/replaceObjectBodyRegex.d.ts.map +0 -1
- package/dist/services/local/replaceObjectBodyRegex.js +0 -85
- package/dist/services/local/replaceObjectBodyRegex.js.map +0 -1
- package/dist/tools/__tests__/pruneClosedTool.test.d.ts +0 -2
- package/dist/tools/__tests__/pruneClosedTool.test.d.ts.map +0 -1
- package/dist/tools/__tests__/pruneClosedTool.test.js +0 -112
- package/dist/tools/__tests__/pruneClosedTool.test.js.map +0 -1
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts +0 -2
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.d.ts.map +0 -1
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js +0 -89
- package/dist/tools/__tests__/replaceObjectBodyRegexTool.test.js.map +0 -1
- package/dist/tools/pruneClosedTool.d.ts +0 -27
- package/dist/tools/pruneClosedTool.d.ts.map +0 -1
- package/dist/tools/pruneClosedTool.js +0 -57
- package/dist/tools/pruneClosedTool.js.map +0 -1
- package/dist/tools/replaceObjectBodyRegexTool.d.ts +0 -36
- package/dist/tools/replaceObjectBodyRegexTool.d.ts.map +0 -1
- package/dist/tools/replaceObjectBodyRegexTool.js +0 -67
- package/dist/tools/replaceObjectBodyRegexTool.js.map +0 -1
- package/dist/utils/ReplaceStringOptions.d.ts +0 -12
- package/dist/utils/ReplaceStringOptions.d.ts.map +0 -1
- package/dist/utils/ReplaceStringOptions.js +0 -3
- package/dist/utils/ReplaceStringOptions.js.map +0 -1
- package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts +0 -2
- package/dist/utils/__tests__/replaceStringWithRegex.test.d.ts.map +0 -1
- package/dist/utils/__tests__/replaceStringWithRegex.test.js +0 -281
- package/dist/utils/__tests__/replaceStringWithRegex.test.js.map +0 -1
- package/dist/utils/replaceStringWithRegex.d.ts +0 -45
- package/dist/utils/replaceStringWithRegex.d.ts.map +0 -1
- package/dist/utils/replaceStringWithRegex.js +0 -91
- package/dist/utils/replaceStringWithRegex.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,43 +1,41 @@
|
|
|
1
1
|
# Task Trellis MCP
|
|
2
2
|
|
|
3
|
+
**Project planning and task management built specifically for AI agents**
|
|
4
|
+
|
|
3
5
|
[](https://www.npmjs.com/package/@langadventurellc/task-trellis-mcp)
|
|
4
6
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
5
7
|
|
|
6
|
-
|
|
8
|
+
Task Trellis is an MCP server for project planning and task management built specifically for AI agents. It helps by breaking down complex projects and tracking their progress with built-in task management, complete with progress tracking, dependency management, and workflow automation. By default, all data is stored locally in Markdown files.
|
|
7
9
|
|
|
8
|
-
Primarily built as a much better alternative to managing markdown checklists. Task Trellis will make it easier to define requirements, specifications, and tasks in a structured way that the
|
|
10
|
+
Primarily built as a much better alternative to managing markdown checklists. Task Trellis will make it easier to define requirements, specifications, and tasks in a structured way that the agents can actually use directly.
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
Full documentation is available in the [docs](docs/index.md) folder.
|
|
11
13
|
|
|
12
14
|
## Table of Contents
|
|
13
15
|
|
|
16
|
+
- [At a Glance](#at-a-glance)
|
|
14
17
|
- [Why Task Trellis?](#why-task-trellis)
|
|
15
18
|
- [Core Benefits](#core-benefits)
|
|
16
19
|
- [Usage](#usage)
|
|
20
|
+
- [Installation and Configuration](#installation-and-configuration)
|
|
17
21
|
- [Available Tools](#available-tools)
|
|
18
|
-
- [Project Hierarchy](#project-hierarchy)
|
|
19
|
-
- [Prerequisites & Dependencies](#prerequisites--dependencies)
|
|
20
|
-
- [File Storage](#file-storage)
|
|
21
|
-
- [Installation](#installation)
|
|
22
|
-
- [Quick Test](#quick-test)
|
|
23
|
-
- [Configuration Options](#configuration-options)
|
|
24
22
|
- [Troubleshooting](#troubleshooting)
|
|
25
23
|
|
|
26
24
|
## At a Glance
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
26
|
+
| Prompt | Result |
|
|
27
|
+
| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
|
28
|
+
| Use Trellis to create a project for (my project details) | _project created with epics, features and tasks defined and dependencies identified_ |
|
|
29
|
+
| Complete the next available task | _next open task with dependencies satisfied is claimed and worked on_ |
|
|
30
|
+
| Work on all of the tasks for feature F-my-feature | _all tasks for the specified feature are claimed and worked on_ |
|
|
31
|
+
| Show me all open tasks in (my project) | _list of all open tasks in the specified project_ |
|
|
32
|
+
| After working on (feature), there's a bug. Look at what changed and fix it. | _bug identified by examining all the files that were modified while working on that feature and fixed_ |
|
|
33
|
+
| Create a new feature (feature details). Look at (other feature) and follow the same pattern | _new feature created by mirroring the pattern of the other feature_ |
|
|
34
|
+
| (after finding issue with design) Update all tasks in F-my-feature and update the design specifications | _all tasks in the specified feature are updated to reflect the new design specifications_ |
|
|
37
35
|
|
|
38
|
-
|
|
36
|
+
_... and much more!_
|
|
39
37
|
|
|
40
|
-
|
|
38
|
+
See [Sample Prompts](docs/sample_prompts/index.md) for battle-tested prompts (written as Claude Code slash commands).
|
|
41
39
|
|
|
42
40
|
## Why Task Trellis?
|
|
43
41
|
|
|
@@ -55,14 +53,14 @@ Currently, all Task Trellis objects are stored as markdown files in the `.trelli
|
|
|
55
53
|
### With Task Trellis
|
|
56
54
|
|
|
57
55
|
- **Structured Breakdown**: Automatically organize projects into hierarchical tasks (depending on the size of the effort required)
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
- For small tasks, create standalone tasks
|
|
56
|
+
- Project → Epic → Feature → Task
|
|
57
|
+
- See [Picking a Parent Issue Type](docs/issues.md#picking-a-parent-issue-type)
|
|
61
58
|
- **Smart Dependencies**: Prevent tasks from starting until prerequisites are complete
|
|
62
59
|
- **Progress Tracking**: Real-time visibility into what's done, in-progress, and pending
|
|
63
60
|
- **Session Continuity**: Pick up exactly where you left off across AI conversations
|
|
64
61
|
- **Workflow Management**: Built-in task claiming, completion, and validation workflows
|
|
65
62
|
- **File Change Tracking**: Automatic documentation of what files were modified for each task
|
|
63
|
+
- **Learn from History**: AI agents can reference past work to inform future tasks
|
|
66
64
|
|
|
67
65
|
## Core Benefits
|
|
68
66
|
|
|
@@ -75,6 +73,8 @@ Currently, all Task Trellis objects are stored as markdown files in the `.trelli
|
|
|
75
73
|
|
|
76
74
|
## Usage
|
|
77
75
|
|
|
76
|
+
See full documentation at [Task Trellis MCP Documentation](docs/index.md)
|
|
77
|
+
|
|
78
78
|
### Basic Workflow
|
|
79
79
|
|
|
80
80
|
See sample prompts (written as Claude Code slash commands): [Sample Prompts](docs/sample_prompts/index.md)
|
|
@@ -102,322 +102,37 @@ See sample prompts (written as Claude Code slash commands): [Sample Prompts](doc
|
|
|
102
102
|
- See dependency relationships
|
|
103
103
|
- Monitor overall project health
|
|
104
104
|
|
|
105
|
+
## Installation and Configuration
|
|
106
|
+
|
|
107
|
+
See [installation instructions](docs/installation.md).
|
|
108
|
+
|
|
105
109
|
## Available Tools
|
|
106
110
|
|
|
107
|
-
### Core
|
|
111
|
+
### Core Issue Management
|
|
108
112
|
|
|
109
|
-
- **
|
|
110
|
-
- **
|
|
111
|
-
- **
|
|
112
|
-
- **
|
|
113
|
-
- **
|
|
114
|
-
- **
|
|
113
|
+
- **create_issue** - Create projects, epics, features, or tasks with hierarchical relationships
|
|
114
|
+
- **update_issue** - Modify issue properties, status, priority, or prerequisites
|
|
115
|
+
- **get_issue** - Retrieve detailed issue information with history and relationships
|
|
116
|
+
- **list_issues** - Query and filter issues by type, status, priority, or scope (returns issue summaries)
|
|
117
|
+
- **delete_issue** - Remove issues (with dependency validation)
|
|
118
|
+
- **replace_issue_body_regex** - Make targeted body content edits using regex patterns
|
|
115
119
|
|
|
116
120
|
### Task Workflow Management
|
|
117
121
|
|
|
118
122
|
- **claim_task** - Claim available tasks for execution with automatic priority ordering
|
|
119
123
|
- **complete_task** - Mark tasks complete with file change documentation
|
|
120
|
-
- **
|
|
124
|
+
- **append_issue_log** - Add progress notes and status updates to task history (occurs automatically on task completion)
|
|
121
125
|
- **append_modified_files** - Record files modified during task execution with change descriptions (occurs automatically on task completion)
|
|
122
126
|
|
|
123
127
|
### System Management
|
|
124
128
|
|
|
125
129
|
- **activate** - Initialize the task system (if not configured via command line)
|
|
126
|
-
- **prune_closed** - Clean up old completed/cancelled
|
|
127
|
-
|
|
128
|
-
## Project Hierarchy
|
|
129
|
-
|
|
130
|
-
Task Trellis supports a flexible 4-level hierarchy:
|
|
131
|
-
|
|
132
|
-
```
|
|
133
|
-
Project (Top-level container)
|
|
134
|
-
└── Epic (Large feature groupings)
|
|
135
|
-
└── Feature (Specific functionality)
|
|
136
|
-
└── Task (Individual work items)
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
## Prerequisites & Dependencies
|
|
140
|
-
|
|
141
|
-
Tasks can have prerequisites that must be completed before they become available:
|
|
142
|
-
|
|
143
|
-
```typescript
|
|
144
|
-
{
|
|
145
|
-
"type": "task",
|
|
146
|
-
"title": "Deploy authentication system",
|
|
147
|
-
"prerequisites": ["T-user-registration", "T-login-system", "T-email-verification"]
|
|
148
|
-
}
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## File Storage
|
|
152
|
-
|
|
153
|
-
Task Trellis uses a local file-based storage system with different hierarchy patterns:
|
|
154
|
-
|
|
155
|
-
### Full Project Hierarchy
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
your-project/
|
|
159
|
-
└── .trellis/
|
|
160
|
-
└── p/
|
|
161
|
-
└── P-project-id/
|
|
162
|
-
└── e/
|
|
163
|
-
└── E-epic-id/
|
|
164
|
-
└── f/
|
|
165
|
-
└── F-feature-id/
|
|
166
|
-
└── t/
|
|
167
|
-
├── open/
|
|
168
|
-
│ └── T-task-id.md
|
|
169
|
-
└── closed/
|
|
170
|
-
└── T-completed-task-id.md
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### Epic-Only Hierarchy
|
|
174
|
-
|
|
175
|
-
```
|
|
176
|
-
your-project/
|
|
177
|
-
└── .trellis/
|
|
178
|
-
└── e/
|
|
179
|
-
└── E-epic-id/
|
|
180
|
-
└── f/
|
|
181
|
-
└── F-feature-id/
|
|
182
|
-
└── t/
|
|
183
|
-
├── open/
|
|
184
|
-
│ └── T-task-id.md
|
|
185
|
-
└── closed/
|
|
186
|
-
└── T-completed-task-id.md
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
### Feature-Only Hierarchy
|
|
190
|
-
|
|
191
|
-
```
|
|
192
|
-
your-project/
|
|
193
|
-
└── .trellis/
|
|
194
|
-
└── f/
|
|
195
|
-
└── F-feature-id/
|
|
196
|
-
└── t/
|
|
197
|
-
├── open/
|
|
198
|
-
│ └── T-task-id.md
|
|
199
|
-
└── closed/
|
|
200
|
-
└── T-completed-task-id.md
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
### Standalone Tasks
|
|
204
|
-
|
|
205
|
-
```
|
|
206
|
-
your-project/
|
|
207
|
-
└── .trellis/
|
|
208
|
-
└── t/
|
|
209
|
-
├── open/
|
|
210
|
-
│ └── T-task-id.md
|
|
211
|
-
└── closed/
|
|
212
|
-
└── T-completed-task-id.md
|
|
213
|
-
```
|
|
214
|
-
|
|
215
|
-
Each object is stored as a Markdown file with YAML frontmatter metadata and content body.
|
|
216
|
-
|
|
217
|
-
## Installation
|
|
218
|
-
|
|
219
|
-
### CLI Arguments
|
|
220
|
-
|
|
221
|
-
- **--mode <mode>**: Server mode. `local` or `remote` (default: `local`) (`remote` not yet supported)
|
|
222
|
-
- **--projectRootFolder <path>**: Project root folder path (typically, the root of your repository, but can be in a shared folder for collaboration)
|
|
223
|
-
- **--auto-complete-parent**: Enable automatic completion of parent tasks when the last task of a feature is completed
|
|
224
|
-
|
|
225
|
-
### Claude Code
|
|
226
|
-
|
|
227
|
-
The easiest way to install Task Trellis MCP in Claude Code:
|
|
228
|
-
|
|
229
|
-
```bash
|
|
230
|
-
claude mcp add @langadventurellc/task-trellis-mcp --projectRootFolder "$(pwd)"
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
Or (you'll be required to call the activate tool once to set the project root folder):
|
|
234
|
-
|
|
235
|
-
```bash
|
|
236
|
-
claude mcp add @langadventurellc/task-trellis-mcp
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
### VS Code with GitHub Copilot
|
|
240
|
-
|
|
241
|
-
1. Add Task Trellis to your VS Code settings. Open your settings JSON file and add:
|
|
242
|
-
|
|
243
|
-
```json
|
|
244
|
-
{
|
|
245
|
-
"github.copilot.chat.mcpServers": {
|
|
246
|
-
"task-trellis": {
|
|
247
|
-
"command": "npx",
|
|
248
|
-
"args": [
|
|
249
|
-
"-y",
|
|
250
|
-
"@langadventurellc/task-trellis-mcp",
|
|
251
|
-
"--projectRootFolder",
|
|
252
|
-
"${workspaceFolder}"
|
|
253
|
-
]
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### Cursor
|
|
260
|
-
|
|
261
|
-
Install Task Trellis MCP in Cursor by adding to your Cursor settings:
|
|
262
|
-
|
|
263
|
-
**Method 1: Via Settings UI**
|
|
264
|
-
|
|
265
|
-
1. Open Cursor Settings (⌘/Ctrl + ,)
|
|
266
|
-
2. Search for "MCP"
|
|
267
|
-
3. Add new server with:
|
|
268
|
-
- **Name**: `task-trellis`
|
|
269
|
-
- **Command**: `npx`
|
|
270
|
-
- **Args**: `["-y", "@langadventurellc/task-trellis-mcp", "--projectRootFolder", "${workspaceFolder}"]`
|
|
271
|
-
|
|
272
|
-
**Method 2: Via Configuration File**
|
|
273
|
-
Add to your Cursor configuration:
|
|
274
|
-
|
|
275
|
-
```json
|
|
276
|
-
{
|
|
277
|
-
"mcpServers": {
|
|
278
|
-
"task-trellis": {
|
|
279
|
-
"command": "npx",
|
|
280
|
-
"args": [
|
|
281
|
-
"-y",
|
|
282
|
-
"@langadventurellc/task-trellis-mcp",
|
|
283
|
-
"--projectRootFolder",
|
|
284
|
-
"${workspaceFolder}"
|
|
285
|
-
]
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
### Windsurf
|
|
292
|
-
|
|
293
|
-
Add Task Trellis to your Windsurf MCP configuration:
|
|
294
|
-
|
|
295
|
-
```json
|
|
296
|
-
{
|
|
297
|
-
"mcpServers": {
|
|
298
|
-
"task-trellis": {
|
|
299
|
-
"command": "npx",
|
|
300
|
-
"args": [
|
|
301
|
-
"-y",
|
|
302
|
-
"@langadventurellc/task-trellis-mcp",
|
|
303
|
-
"--projectRootFolder",
|
|
304
|
-
"${workspaceRoot}"
|
|
305
|
-
]
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
### Cline (VS Code Extension)
|
|
312
|
-
|
|
313
|
-
1. Add Task Trellis to your Cline MCP servers in VS Code settings:
|
|
314
|
-
|
|
315
|
-
```json
|
|
316
|
-
{
|
|
317
|
-
"cline.mcpServers": {
|
|
318
|
-
"task-trellis": {
|
|
319
|
-
"command": "npx",
|
|
320
|
-
"args": [
|
|
321
|
-
"-y",
|
|
322
|
-
"@langadventurellc/task-trellis-mcp",
|
|
323
|
-
"--projectRootFolder",
|
|
324
|
-
"${workspaceFolder}"
|
|
325
|
-
]
|
|
326
|
-
}
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
```
|
|
330
|
-
|
|
331
|
-
### Continue (VS Code Extension)
|
|
332
|
-
|
|
333
|
-
1. Add to your Continue configuration file (`~/.continue/config.json`):
|
|
334
|
-
|
|
335
|
-
```json
|
|
336
|
-
{
|
|
337
|
-
"mcpServers": {
|
|
338
|
-
"task-trellis": {
|
|
339
|
-
"command": "npx",
|
|
340
|
-
"args": [
|
|
341
|
-
"-y",
|
|
342
|
-
"@langadventurellc/task-trellis-mcp",
|
|
343
|
-
"--projectRootFolder",
|
|
344
|
-
"/path/to/your/project"
|
|
345
|
-
]
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
```
|
|
350
|
-
|
|
351
|
-
### Other MCP Clients
|
|
352
|
-
|
|
353
|
-
For any MCP-compatible client, use this configuration:
|
|
354
|
-
|
|
355
|
-
```json
|
|
356
|
-
{
|
|
357
|
-
"mcpServers": {
|
|
358
|
-
"task-trellis": {
|
|
359
|
-
"command": "npx",
|
|
360
|
-
"args": [
|
|
361
|
-
"-y",
|
|
362
|
-
"@langadventurellc/task-trellis-mcp",
|
|
363
|
-
"--projectRootFolder",
|
|
364
|
-
"/absolute/path/to/project"
|
|
365
|
-
]
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
}
|
|
369
|
-
```
|
|
370
|
-
|
|
371
|
-
## Quick Test
|
|
372
|
-
|
|
373
|
-
After installation, test that Task Trellis is working by asking your AI assistant:
|
|
374
|
-
|
|
375
|
-
> "Create a new project called 'My Test Project'"
|
|
376
|
-
|
|
377
|
-
If configured correctly, the AI should respond with a confirmation and create the project structure in your specified project root folder.
|
|
378
|
-
|
|
379
|
-
## Configuration Options
|
|
380
|
-
|
|
381
|
-
The Task Trellis MCP server supports these command-line options:
|
|
382
|
-
|
|
383
|
-
- `--mode <mode>` - Server mode (default: "local")
|
|
384
|
-
- `local` - Use local file-based storage
|
|
385
|
-
- `remote` - Use remote repository (planned feature)
|
|
386
|
-
|
|
387
|
-
- `--projectRootFolder <path>` - Project root folder path
|
|
388
|
-
- Creates a `.trellis` folder inside the project root for task storage
|
|
389
|
-
- Example: `--projectRootFolder /path/to/my-project` creates `/path/to/my-project/.trellis/`
|
|
390
|
-
|
|
391
|
-
**Advanced Configuration Example:**
|
|
392
|
-
|
|
393
|
-
```json
|
|
394
|
-
{
|
|
395
|
-
"mcpServers": {
|
|
396
|
-
"task-trellis": {
|
|
397
|
-
"type": "stdio",
|
|
398
|
-
"command": "npx",
|
|
399
|
-
"args": [
|
|
400
|
-
"@langadventurellc/task-trellis-mcp",
|
|
401
|
-
"--mode",
|
|
402
|
-
"local",
|
|
403
|
-
"--projectRootFolder",
|
|
404
|
-
"/path/to/your/project"
|
|
405
|
-
]
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
}
|
|
409
|
-
```
|
|
130
|
+
- **prune_closed** - Clean up old completed/cancelled issues for maintenance
|
|
410
131
|
|
|
411
132
|
## Troubleshooting
|
|
412
133
|
|
|
413
134
|
### Common Issues
|
|
414
135
|
|
|
415
|
-
**Tasks not appearing:**
|
|
416
|
-
|
|
417
|
-
- Ensure prerequisites are completed
|
|
418
|
-
- Check task status (should be 'open' or 'draft')
|
|
419
|
-
- Verify project scope configuration
|
|
420
|
-
|
|
421
136
|
**Configuration issues:**
|
|
422
137
|
|
|
423
138
|
- Validate JSON syntax in MCP client configuration
|
|
@@ -427,8 +142,7 @@ The Task Trellis MCP server supports these command-line options:
|
|
|
427
142
|
### Getting Help
|
|
428
143
|
|
|
429
144
|
- **Issues**: [Report bugs or feature requests](https://github.com/langadventurellc/task-trellis-mcp/issues)
|
|
430
|
-
- **Documentation**: Check this README and
|
|
431
|
-
- **Community**: Share experiences and get help from other users
|
|
145
|
+
- **Documentation**: Check this README and [docs](docs/index.md)
|
|
432
146
|
|
|
433
147
|
## License
|
|
434
148
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autoPrune.e2e.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/e2e/autoPrune.e2e.test.ts"],"names":[],"mappings":""}
|