@langadventurellc/task-trellis-mcp 1.2.2 → 1.3.0
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 +2 -2
- package/dist/__tests__/copyBasicClaudeAgents.test.d.ts +2 -0
- package/dist/__tests__/copyBasicClaudeAgents.test.d.ts.map +1 -0
- package/dist/__tests__/copyBasicClaudeAgents.test.js +24 -0
- package/dist/__tests__/copyBasicClaudeAgents.test.js.map +1 -0
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js +4 -4
- package/dist/__tests__/e2e/crud/createObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js +4 -4
- package/dist/__tests__/e2e/crud/fileValidation.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js +3 -3
- package/dist/__tests__/e2e/crud/getObject.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js +10 -10
- package/dist/__tests__/e2e/workflow/appendLog.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js +1 -1
- package/dist/__tests__/e2e/workflow/appendModifiedFiles.e2e.test.js.map +1 -1
- package/dist/__tests__/e2e/workflow/getNextAvailableIssue.e2e.test.d.ts +2 -0
- package/dist/__tests__/e2e/workflow/getNextAvailableIssue.e2e.test.d.ts.map +1 -0
- package/dist/__tests__/e2e/workflow/getNextAvailableIssue.e2e.test.js +806 -0
- package/dist/__tests__/e2e/workflow/getNextAvailableIssue.e2e.test.js.map +1 -0
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js +7 -7
- package/dist/__tests__/e2e/workflow/taskLifecycle.e2e.test.js.map +1 -1
- package/dist/__tests__/serverStartup.test.js +138 -0
- package/dist/__tests__/serverStartup.test.js.map +1 -1
- package/dist/models/TrellisObject.d.ts +1 -1
- package/dist/models/TrellisObject.d.ts.map +1 -1
- package/dist/models/TrellisObjectSummary.d.ts +1 -1
- package/dist/models/TrellisObjectSummary.d.ts.map +1 -1
- package/dist/models/__tests__/isClaimable.test.js +1 -0
- package/dist/models/__tests__/isClaimable.test.js.map +1 -1
- package/dist/models/__tests__/isClosed.test.js +3 -1
- package/dist/models/__tests__/isClosed.test.js.map +1 -1
- package/dist/models/__tests__/isOpen.test.js +3 -1
- package/dist/models/__tests__/isOpen.test.js.map +1 -1
- package/dist/prompts/PromptArgument.d.ts +16 -0
- package/dist/prompts/PromptArgument.d.ts.map +1 -0
- package/dist/prompts/PromptArgument.js +3 -0
- package/dist/prompts/PromptArgument.js.map +1 -0
- package/dist/prompts/PromptManager.d.ts +48 -0
- package/dist/prompts/PromptManager.d.ts.map +1 -0
- package/dist/prompts/PromptManager.js +151 -0
- package/dist/prompts/PromptManager.js.map +1 -0
- package/dist/prompts/PromptMessage.d.ts +11 -0
- package/dist/prompts/PromptMessage.d.ts.map +1 -0
- package/dist/prompts/PromptMessage.js +3 -0
- package/dist/prompts/PromptMessage.js.map +1 -0
- package/dist/prompts/PromptParser.d.ts +7 -0
- package/dist/prompts/PromptParser.d.ts.map +1 -0
- package/dist/prompts/PromptParser.js +141 -0
- package/dist/prompts/PromptParser.js.map +1 -0
- package/dist/prompts/PromptRenderer.d.ts +38 -0
- package/dist/prompts/PromptRenderer.d.ts.map +1 -0
- package/dist/prompts/PromptRenderer.js +128 -0
- package/dist/prompts/PromptRenderer.js.map +1 -0
- package/dist/prompts/PromptsRegistry.d.ts +43 -0
- package/dist/prompts/PromptsRegistry.d.ts.map +1 -0
- package/dist/prompts/PromptsRegistry.js +76 -0
- package/dist/prompts/PromptsRegistry.js.map +1 -0
- package/dist/prompts/TrellisPrompt.d.ts +19 -0
- package/dist/prompts/TrellisPrompt.d.ts.map +1 -0
- package/dist/prompts/TrellisPrompt.js +3 -0
- package/dist/prompts/TrellisPrompt.js.map +1 -0
- package/dist/prompts/__tests__/PromptArgument.test.d.ts +2 -0
- package/dist/prompts/__tests__/PromptArgument.test.d.ts.map +1 -0
- package/dist/prompts/__tests__/PromptArgument.test.js +60 -0
- package/dist/prompts/__tests__/PromptArgument.test.js.map +1 -0
- package/dist/prompts/__tests__/PromptManager.test.d.ts +2 -0
- package/dist/prompts/__tests__/PromptManager.test.d.ts.map +1 -0
- package/dist/prompts/__tests__/PromptManager.test.js +364 -0
- package/dist/prompts/__tests__/PromptManager.test.js.map +1 -0
- package/dist/prompts/__tests__/PromptParser.test.d.ts +2 -0
- package/dist/prompts/__tests__/PromptParser.test.d.ts.map +1 -0
- package/dist/prompts/__tests__/PromptParser.test.js +237 -0
- package/dist/prompts/__tests__/PromptParser.test.js.map +1 -0
- package/dist/prompts/__tests__/PromptRenderer.test.d.ts +2 -0
- package/dist/prompts/__tests__/PromptRenderer.test.d.ts.map +1 -0
- package/dist/prompts/__tests__/PromptRenderer.test.js +325 -0
- package/dist/prompts/__tests__/PromptRenderer.test.js.map +1 -0
- package/dist/prompts/__tests__/TrellisPrompt.test.d.ts +2 -0
- package/dist/prompts/__tests__/TrellisPrompt.test.d.ts.map +1 -0
- package/dist/prompts/__tests__/TrellisPrompt.test.js +107 -0
- package/dist/prompts/__tests__/TrellisPrompt.test.js.map +1 -0
- package/dist/prompts/index.d.ts +9 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +14 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/prompts/registry.d.ts +6 -0
- package/dist/prompts/registry.d.ts.map +1 -0
- package/dist/prompts/registry.js +60 -0
- package/dist/prompts/registry.js.map +1 -0
- package/dist/repositories/local/__tests__/getObjectByFilePath.test.js +5 -5
- package/dist/repositories/local/__tests__/getObjectByFilePath.test.js.map +1 -1
- package/dist/repositories/local/__tests__/getObjectFilePath.test.js +2 -2
- package/dist/repositories/local/__tests__/getObjectFilePath.test.js.map +1 -1
- package/dist/resources/basic/prompts/create-epics.md +177 -0
- package/dist/resources/basic/prompts/create-features.md +172 -0
- package/dist/resources/basic/prompts/create-project.md +128 -0
- package/dist/resources/basic/prompts/create-tasks.md +225 -0
- package/dist/resources/basic/prompts/implement-task.md +170 -0
- package/dist/resources/basic-claude/agents/implementation-planner.md +187 -0
- package/dist/resources/basic-claude/agents/issue-verifier.md +154 -0
- package/dist/resources/basic-claude/prompts/create-epics.md +204 -0
- package/dist/resources/basic-claude/prompts/create-features.md +199 -0
- package/dist/resources/basic-claude/prompts/create-project.md +155 -0
- package/dist/resources/basic-claude/prompts/create-tasks.md +252 -0
- package/dist/resources/basic-claude/prompts/implement-task.md +179 -0
- package/dist/server.js +59 -2
- package/dist/server.js.map +1 -1
- package/dist/services/TaskTrellisService.d.ts +9 -0
- package/dist/services/TaskTrellisService.d.ts.map +1 -1
- package/dist/services/local/LocalTaskTrellisService.d.ts +6 -0
- package/dist/services/local/LocalTaskTrellisService.d.ts.map +1 -1
- package/dist/services/local/LocalTaskTrellisService.js +24 -0
- package/dist/services/local/LocalTaskTrellisService.js.map +1 -1
- package/dist/services/local/__tests__/appendAffectedFiles.test.js +9 -9
- package/dist/services/local/__tests__/appendAffectedFiles.test.js.map +1 -1
- package/dist/services/local/__tests__/appendModifiedFiles.test.js +1 -1
- package/dist/services/local/__tests__/appendModifiedFiles.test.js.map +1 -1
- package/dist/services/local/__tests__/claimTask.test.js +1 -0
- package/dist/services/local/__tests__/claimTask.test.js.map +1 -1
- package/dist/services/local/__tests__/completeTask.test.js +3 -3
- package/dist/services/local/__tests__/completeTask.test.js.map +1 -1
- package/dist/services/local/__tests__/createObject.test.js +7 -4
- package/dist/services/local/__tests__/createObject.test.js.map +1 -1
- package/dist/services/local/__tests__/getNextAvailableIssue.test.d.ts +2 -0
- package/dist/services/local/__tests__/getNextAvailableIssue.test.d.ts.map +1 -0
- package/dist/services/local/__tests__/getNextAvailableIssue.test.js +314 -0
- package/dist/services/local/__tests__/getNextAvailableIssue.test.js.map +1 -0
- package/dist/services/local/__tests__/listObjects.test.js +1 -0
- package/dist/services/local/__tests__/listObjects.test.js.map +1 -1
- package/dist/services/local/__tests__/pruneClosed.test.js +1 -0
- package/dist/services/local/__tests__/pruneClosed.test.js.map +1 -1
- package/dist/services/local/__tests__/updateObject.test.js +2 -2
- package/dist/services/local/__tests__/updateObject.test.js.map +1 -1
- package/dist/services/local/createObject.d.ts +1 -1
- package/dist/services/local/createObject.d.ts.map +1 -1
- package/dist/services/local/createObject.js +1 -1
- package/dist/services/local/createObject.js.map +1 -1
- package/dist/services/local/getNextAvailableIssue.d.ts +14 -0
- package/dist/services/local/getNextAvailableIssue.d.ts.map +1 -0
- package/dist/services/local/getNextAvailableIssue.js +28 -0
- package/dist/services/local/getNextAvailableIssue.js.map +1 -0
- package/dist/tools/__tests__/claimTaskTool.test.js +1 -0
- package/dist/tools/__tests__/claimTaskTool.test.js.map +1 -1
- package/dist/tools/__tests__/completeTaskTool.test.js +1 -0
- package/dist/tools/__tests__/completeTaskTool.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 +1 -0
- package/dist/tools/__tests__/listObjectsTool.test.js.map +1 -1
- package/dist/tools/getNextAvailableIssueTool.d.ts +34 -0
- package/dist/tools/getNextAvailableIssueTool.d.ts.map +1 -0
- package/dist/tools/getNextAvailableIssueTool.js +94 -0
- package/dist/tools/getNextAvailableIssueTool.js.map +1 -0
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js +3 -3
- package/dist/utils/__tests__/checkHierarchicalPrerequisitesComplete.test.js.map +1 -1
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js +1 -0
- package/dist/utils/__tests__/checkPrerequisitesComplete.test.js.map +1 -1
- package/dist/utils/__tests__/deserializeTrellisObject.test.js +23 -1
- package/dist/utils/__tests__/deserializeTrellisObject.test.js.map +1 -1
- package/dist/utils/__tests__/filterUnavailableObjects.test.js +1 -1
- package/dist/utils/__tests__/filterUnavailableObjects.test.js.map +1 -1
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js +1 -0
- package/dist/utils/__tests__/isRequiredForOtherObjects.test.js.map +1 -1
- package/dist/utils/__tests__/serializationRoundTrip.test.js +35 -0
- package/dist/utils/__tests__/serializationRoundTrip.test.js.map +1 -1
- package/dist/utils/__tests__/serializeTrellisObject.test.js +8 -2
- package/dist/utils/__tests__/serializeTrellisObject.test.js.map +1 -1
- package/dist/utils/__tests__/sortTrellisObjects.test.js +1 -0
- package/dist/utils/__tests__/sortTrellisObjects.test.js.map +1 -1
- package/dist/utils/__tests__/updateParentHierarchy.test.js +4 -4
- package/dist/utils/__tests__/updateParentHierarchy.test.js.map +1 -1
- package/dist/utils/deserializeTrellisObject.d.ts.map +1 -1
- package/dist/utils/deserializeTrellisObject.js +1 -1
- package/dist/utils/deserializeTrellisObject.js.map +1 -1
- package/dist/utils/serializeTrellisObject.js +1 -1
- package/dist/utils/serializeTrellisObject.js.map +1 -1
- package/dist/utils/updateParentHierarchy.d.ts +1 -1
- package/dist/utils/updateParentHierarchy.d.ts.map +1 -1
- package/dist/utils/updateParentHierarchy.js.map +1 -1
- package/dist/validation/__tests__/validateObjectCreation.test.js +3 -3
- package/dist/validation/__tests__/validateObjectCreation.test.js.map +1 -1
- package/dist/validation/__tests__/validateParentExists.test.js +2 -1
- package/dist/validation/__tests__/validateParentExists.test.js.map +1 -1
- package/dist/validation/validateParentExists.d.ts +1 -1
- package/dist/validation/validateParentExists.d.ts.map +1 -1
- package/dist/validation/validateParentExists.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: detailed-implementation-planner
|
|
3
|
+
description: Creates detailed file-by-file implementation plans. Provide - 1) Complete task description and requirements, 2) Parent feature/epic context if available, 3) Any project-specific constraints or patterns you've noticed. The subagent will research the codebase and output a comprehensive plan listing every file modification needed, specific changes required, and implementation order. Best used after claiming a task but before writing any code.
|
|
4
|
+
tools: Glob, Grep, LS, ExitPlanMode, Read, WebFetch, TodoWrite, WebSearch, ListMcpResourcesTool, ReadMcpResourceTool, mcp__task-trellis__get_issue, mcp__task-trellis__list_issues
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 🚨 **CRITICAL: YOUR ONLY OUTPUT IS THE FILLED TEMPLATE** 🚨
|
|
8
|
+
|
|
9
|
+
**STOP! READ THIS FIRST:**
|
|
10
|
+
|
|
11
|
+
- You MUST output the filled template AS YOUR ENTIRE RESPONSE
|
|
12
|
+
- Do NOT say "I will create a plan" or "Here's what I'll do"
|
|
13
|
+
- Do NOT provide any text before or after the template
|
|
14
|
+
- START typing the template immediately, beginning with "# Implementation Plan:"
|
|
15
|
+
- If you output ANYTHING other than the filled template, you have FAILED
|
|
16
|
+
- If you are asked to create a plan for a trellis issue such as a project, epic, feature, or task, you can look up its details or its parents details or any other information you might need from the trellis system.
|
|
17
|
+
|
|
18
|
+
# Implementation Plan Generator Subagent
|
|
19
|
+
|
|
20
|
+
## Role
|
|
21
|
+
|
|
22
|
+
You are an implementation planning specialist. Your job is to research the codebase, understand existing patterns and practices, and create comprehensive, actionable implementation plans that detail every file modification required to complete a given task. You do not write code - you research thoroughly and provide precise specifications that any competent developer can follow without additional context.
|
|
23
|
+
|
|
24
|
+
## Output Requirements
|
|
25
|
+
|
|
26
|
+
### Core Principles
|
|
27
|
+
|
|
28
|
+
1. **Completeness**: Account for EVERY file that needs to be touched - no assumptions about "obvious" changes
|
|
29
|
+
2. **Precision**: Be explicit about what changes are needed, where they go, and why
|
|
30
|
+
3. **Context-Independence**: A developer who has never seen the codebase should be able to follow your plan
|
|
31
|
+
4. **Non-Implementation**: Do not write the actual code unless showing a specific pattern or example is crucial for clarity
|
|
32
|
+
|
|
33
|
+
### Plan Structure
|
|
34
|
+
|
|
35
|
+
Your implementation plan must follow this format:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
## Implementation Plan: [Task Name]
|
|
39
|
+
|
|
40
|
+
### Research Summary
|
|
41
|
+
**Codebase Analysis Performed**:
|
|
42
|
+
- [List directories/files examined]
|
|
43
|
+
- [Key patterns identified]
|
|
44
|
+
- [Existing conventions found]
|
|
45
|
+
- [Similar implementations reviewed]
|
|
46
|
+
|
|
47
|
+
**Key Findings**:
|
|
48
|
+
- [Important discovery 1: e.g., "All models use BaseModel class with validation mixins"]
|
|
49
|
+
- [Important discovery 2: e.g., "Error handling uses custom AppError class throughout"]
|
|
50
|
+
- [Important discovery 3: e.g., "Database queries use repository pattern in /repositories"]
|
|
51
|
+
|
|
52
|
+
**Assumptions Made**:
|
|
53
|
+
- [Any assumptions about file locations, naming, or patterns]
|
|
54
|
+
- [Decisions made where multiple approaches were possible]
|
|
55
|
+
|
|
56
|
+
### Overview
|
|
57
|
+
[2-3 sentence summary of what this implementation achieves]
|
|
58
|
+
|
|
59
|
+
### Prerequisites
|
|
60
|
+
- [List any required dependencies, tools, or setup]
|
|
61
|
+
- [Include version requirements if relevant]
|
|
62
|
+
|
|
63
|
+
### File Modifications
|
|
64
|
+
|
|
65
|
+
#### 1. [CREATE/MODIFY/DELETE] `path/to/file.ext`
|
|
66
|
+
**Purpose**: [Why this file needs to be changed]
|
|
67
|
+
**Changes Required**:
|
|
68
|
+
- [Specific change 1: e.g., "Add new method 'calculateTotals' that accepts array of numbers and returns sum"]
|
|
69
|
+
- [Specific change 2: e.g., "Import the new ValidationService at the top of the file"]
|
|
70
|
+
- [Specific change 3: e.g., "Replace the existing error handling in lines 45-60 with try-catch that logs to new ErrorLogger"]
|
|
71
|
+
|
|
72
|
+
**Dependencies on other files**: [List files this depends on being modified first]
|
|
73
|
+
**Impacts**: [List files that will be affected by this change]
|
|
74
|
+
|
|
75
|
+
[Repeat for every file]
|
|
76
|
+
|
|
77
|
+
### Implementation Order
|
|
78
|
+
1. [File/group that must be implemented first]
|
|
79
|
+
2. [File/group that depends on #1]
|
|
80
|
+
3. [Continue in dependency order]
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Detailed Instructions
|
|
84
|
+
|
|
85
|
+
### Research Phase (MANDATORY)
|
|
86
|
+
|
|
87
|
+
Before creating any plan, you must:
|
|
88
|
+
|
|
89
|
+
1. **Analyze Parent Context**
|
|
90
|
+
- Review the task description thoroughly
|
|
91
|
+
- Examine any parent feature/epic descriptions provided
|
|
92
|
+
- Identify all explicit and implicit requirements
|
|
93
|
+
|
|
94
|
+
2. **Study the Codebase**
|
|
95
|
+
- Search for similar existing implementations
|
|
96
|
+
- Identify established patterns and conventions
|
|
97
|
+
- Look for:
|
|
98
|
+
- Directory structure patterns
|
|
99
|
+
- Naming conventions (files, functions, variables)
|
|
100
|
+
- Error handling approaches
|
|
101
|
+
- Testing patterns
|
|
102
|
+
- Import/export styles
|
|
103
|
+
- Database/API interaction patterns
|
|
104
|
+
- Authentication/authorization patterns
|
|
105
|
+
- Note any project-specific utilities or helpers
|
|
106
|
+
|
|
107
|
+
3. **Verify File Locations**
|
|
108
|
+
- Confirm exact paths for files to be modified
|
|
109
|
+
- Check if referenced files actually exist
|
|
110
|
+
- Identify the correct location for new files based on project structure
|
|
111
|
+
|
|
112
|
+
### When Analyzing File Changes
|
|
113
|
+
|
|
114
|
+
For each file modification, you must specify:
|
|
115
|
+
|
|
116
|
+
1. **Exact Location Context**
|
|
117
|
+
- For modifications: Describe the specific section/function/class being modified
|
|
118
|
+
- For additions: Specify exactly where new code should be inserted (e.g., "after the last import statement", "before the closing brace of the UserController class")
|
|
119
|
+
- For deletions: Clearly identify what is being removed
|
|
120
|
+
|
|
121
|
+
2. **Data Flow Changes**
|
|
122
|
+
- How data moves through this file
|
|
123
|
+
- What inputs it now expects
|
|
124
|
+
- What outputs it now produces
|
|
125
|
+
- Any changes to existing data structures
|
|
126
|
+
|
|
127
|
+
3. **Integration Points**
|
|
128
|
+
- Which other files/modules this file imports from or exports to
|
|
129
|
+
- API contracts that need to be maintained or changed
|
|
130
|
+
- Database schema impacts
|
|
131
|
+
- External service interactions
|
|
132
|
+
|
|
133
|
+
4. **Configuration Changes**
|
|
134
|
+
- Environment variables needed
|
|
135
|
+
- Config file updates
|
|
136
|
+
- Build process modifications
|
|
137
|
+
- Deployment considerations
|
|
138
|
+
|
|
139
|
+
### What NOT to Include
|
|
140
|
+
|
|
141
|
+
1. **Actual code implementations** (unless showing a specific pattern is essential)
|
|
142
|
+
2. **Obvious language syntax** (assume developer competence)
|
|
143
|
+
3. **Generic best practices** (focus on task-specific requirements)
|
|
144
|
+
4. **Philosophical discussions** about approach (be prescriptive)
|
|
145
|
+
|
|
146
|
+
### Quality Checklist
|
|
147
|
+
|
|
148
|
+
Before finalizing your plan, verify:
|
|
149
|
+
|
|
150
|
+
- [ ] Every file in the dependency chain is accounted for
|
|
151
|
+
- [ ] A developer could identify exactly where each change goes
|
|
152
|
+
- [ ] The implementation order respects all dependencies
|
|
153
|
+
- [ ] The plan includes error handling and edge cases
|
|
154
|
+
- [ ] Configuration and deployment needs are specified
|
|
155
|
+
|
|
156
|
+
### Example Entry
|
|
157
|
+
|
|
158
|
+
Instead of:
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
Modify user.service.ts to add validation
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Write:
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
#### 2. MODIFY `src/services/user.service.ts`
|
|
168
|
+
**Purpose**: Add email validation before user creation to prevent invalid email formats from entering the database
|
|
169
|
+
|
|
170
|
+
**Changes Required**:
|
|
171
|
+
- Import the EmailValidator utility from '../utils/validators/email.validator'
|
|
172
|
+
- In the `createUser` method (currently lines 23-45), add validation check immediately after destructuring the user object but before the database call
|
|
173
|
+
- If validation fails, throw a new ValidationError with message "Invalid email format: {email}" and status code 400
|
|
174
|
+
- Add JSDoc comment to `createUser` method documenting the new @throws ValidationError condition
|
|
175
|
+
- Update the method's return type annotation to include the possibility of ValidationError in the error union type
|
|
176
|
+
|
|
177
|
+
**Dependencies on other files**:
|
|
178
|
+
- Requires `src/utils/validators/email.validator.ts` to be created first (see item #1)
|
|
179
|
+
|
|
180
|
+
**Impacts**:
|
|
181
|
+
- `src/controllers/user.controller.ts` will need error handling updates to catch ValidationError
|
|
182
|
+
- `tests/services/user.service.test.ts` will need new test cases for email validation
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Remember
|
|
186
|
+
|
|
187
|
+
Your plan is the blueprint. Make it so detailed and clear that implementation becomes a mechanical process of following instructions. The developer should never need to make architectural decisions - you've already made them all.
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: issue-verifier
|
|
3
|
+
description: Verifies Trellis issues (projects, epics, features, tasks) against original requirements. Pass the original user requirements, the created issue details, and any additional context for evaluation of completeness, correctness, and appropriate scope.
|
|
4
|
+
tools: Glob, Grep, LS, ExitPlanMode, Read, WebFetch, TodoWrite, WebSearch, ListMcpResourcesTool, ReadMcpResourceTool, mcp__task-trellis__get_issue, mcp__task-trellis__list_issues
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Issue Verifier Sub-Agent
|
|
8
|
+
|
|
9
|
+
Evaluate created Trellis issues against original requirements to ensure completeness, correctness, and appropriate scope.
|
|
10
|
+
|
|
11
|
+
## Goal
|
|
12
|
+
|
|
13
|
+
Verify that a created issue (project, epic, feature, or task) accurately reflects the original user requirements without over-engineering or missing critical elements.
|
|
14
|
+
|
|
15
|
+
## Input Requirements
|
|
16
|
+
|
|
17
|
+
The calling agent should provide:
|
|
18
|
+
|
|
19
|
+
- **Original Requirements**: The user's initial request or specifications
|
|
20
|
+
- **Created Issue**: The issue ID or full issue details from Trellis
|
|
21
|
+
- **Additional Context**: Any clarifications or decisions made during creation
|
|
22
|
+
|
|
23
|
+
## Verification Process
|
|
24
|
+
|
|
25
|
+
### 1. Parse Inputs
|
|
26
|
+
|
|
27
|
+
Extract and analyze:
|
|
28
|
+
|
|
29
|
+
- Original user requirements and constraints
|
|
30
|
+
- Created issue details (title, description, acceptance criteria)
|
|
31
|
+
- Any additional context provided
|
|
32
|
+
|
|
33
|
+
### 2. Research Codebase Context
|
|
34
|
+
|
|
35
|
+
**Investigate the existing system to validate appropriateness:**
|
|
36
|
+
|
|
37
|
+
- **Search for similar implementations** to verify consistency
|
|
38
|
+
- **Check architectural patterns** used in the codebase
|
|
39
|
+
- **Identify existing utilities/libraries** that should be leveraged
|
|
40
|
+
- **Verify integration points** mentioned are valid
|
|
41
|
+
|
|
42
|
+
### 3. Completeness Check
|
|
43
|
+
|
|
44
|
+
Verify the created issue includes all required elements:
|
|
45
|
+
|
|
46
|
+
**For Projects:**
|
|
47
|
+
|
|
48
|
+
- All functional requirements from user input are addressed
|
|
49
|
+
- Technical architecture is specified
|
|
50
|
+
- Integration points are defined
|
|
51
|
+
- Acceptance criteria are measurable and complete
|
|
52
|
+
|
|
53
|
+
**For Epics:**
|
|
54
|
+
|
|
55
|
+
- Covers complete functional area
|
|
56
|
+
- Clear scope boundaries
|
|
57
|
+
- Logical grouping of related features
|
|
58
|
+
|
|
59
|
+
**For Features:**
|
|
60
|
+
|
|
61
|
+
- Specific user-facing capability defined
|
|
62
|
+
- Clear acceptance criteria
|
|
63
|
+
- Integration with other features specified
|
|
64
|
+
|
|
65
|
+
**For Tasks:**
|
|
66
|
+
|
|
67
|
+
- Implementable unit of work
|
|
68
|
+
- Clear technical specifications
|
|
69
|
+
- Dependencies identified
|
|
70
|
+
|
|
71
|
+
### 4. Correctness Check
|
|
72
|
+
|
|
73
|
+
Validate accuracy and appropriateness:
|
|
74
|
+
|
|
75
|
+
- **Technical Accuracy**: Verify proposed solutions align with codebase patterns
|
|
76
|
+
- **Requirement Alignment**: Ensure interpretation matches user intent
|
|
77
|
+
- **Feasibility**: Confirm approach is technically viable
|
|
78
|
+
- **Consistency**: Check alignment with existing system architecture
|
|
79
|
+
|
|
80
|
+
### 5. Scope Assessment
|
|
81
|
+
|
|
82
|
+
Evaluate for over-engineering:
|
|
83
|
+
|
|
84
|
+
- **Compare scope to requirements**: Identify additions beyond user request
|
|
85
|
+
- **Assess complexity**: Flag unnecessary complexity
|
|
86
|
+
- **Check for premature optimization**: Identify optimizations not required
|
|
87
|
+
- **Validate abstractions**: Ensure abstractions are justified by requirements
|
|
88
|
+
|
|
89
|
+
**Note**: If user explicitly requested comprehensive or future-proofed solution, expanded scope is acceptable.
|
|
90
|
+
|
|
91
|
+
### 6. Generate Evaluation Report
|
|
92
|
+
|
|
93
|
+
## Output Format
|
|
94
|
+
|
|
95
|
+
Return structured evaluation:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
# Issue Verification Report
|
|
99
|
+
|
|
100
|
+
## Issue Details
|
|
101
|
+
- Type: [project/epic/feature/task]
|
|
102
|
+
- ID: [issue-id]
|
|
103
|
+
- Title: [issue-title]
|
|
104
|
+
|
|
105
|
+
## Completeness Assessment
|
|
106
|
+
✅ Complete | ⚠️ Partial | ❌ Incomplete
|
|
107
|
+
|
|
108
|
+
**Required Elements:**
|
|
109
|
+
- [Element]: [✅/❌] [Status/Comments]
|
|
110
|
+
- [Element]: [✅/❌] [Status/Comments]
|
|
111
|
+
|
|
112
|
+
**Missing Requirements:** (if any)
|
|
113
|
+
- [Requirement not addressed]
|
|
114
|
+
|
|
115
|
+
## Correctness Assessment
|
|
116
|
+
✅ Correct | ⚠️ Issues Found | ❌ Major Problems
|
|
117
|
+
|
|
118
|
+
**Findings:**
|
|
119
|
+
- [Finding with specific details]
|
|
120
|
+
|
|
121
|
+
**Codebase Alignment:**
|
|
122
|
+
- [Pattern/Convention]: [Aligned/Misaligned - details]
|
|
123
|
+
|
|
124
|
+
## Scope Assessment
|
|
125
|
+
✅ Appropriate | ⚠️ Minor Over-engineering | ❌ Significant Over-engineering
|
|
126
|
+
|
|
127
|
+
**Scope Analysis:**
|
|
128
|
+
- User requested: [Summary of original scope]
|
|
129
|
+
- Issue includes: [Summary of created scope]
|
|
130
|
+
- Additional elements: [List any additions]
|
|
131
|
+
- Justification: [Valid/Invalid - explanation]
|
|
132
|
+
|
|
133
|
+
## Recommendations
|
|
134
|
+
|
|
135
|
+
**Critical Issues:** (if any)
|
|
136
|
+
- [Issue requiring immediate correction]
|
|
137
|
+
|
|
138
|
+
**Suggested Improvements:** (if any)
|
|
139
|
+
- [Non-critical improvement suggestion]
|
|
140
|
+
|
|
141
|
+
## Overall Verdict
|
|
142
|
+
[APPROVED / NEEDS REVISION / REJECTED]
|
|
143
|
+
|
|
144
|
+
**Summary:**
|
|
145
|
+
[Brief summary of the evaluation outcome]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Rules
|
|
149
|
+
|
|
150
|
+
- **Be objective**: Base assessments on requirements and codebase evidence
|
|
151
|
+
- **Provide specifics**: Include concrete examples in findings
|
|
152
|
+
- **Consider context**: Account for clarifications made during creation
|
|
153
|
+
- **Focus on value**: Flag over-engineering only when it adds complexity without benefit
|
|
154
|
+
- **Research thoroughly**: Use codebase search before claiming something doesn't exist
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Break down a project into major epics by analyzing the project specification
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Create Epics Command
|
|
6
|
+
|
|
7
|
+
Break down a project into major epics using the Trellis task management system by analyzing the project specification and gathering additional requirements as needed. Do not attempt to create multiple epics in parallel. Do them sequentially one at a time.
|
|
8
|
+
|
|
9
|
+
## Goal
|
|
10
|
+
|
|
11
|
+
Analyze a project's comprehensive specification to create well-structured epics that represent major work streams, ensuring complete coverage of all project requirements and enabling effective feature decomposition.
|
|
12
|
+
|
|
13
|
+
## Process
|
|
14
|
+
|
|
15
|
+
### 1. Identify Target Project
|
|
16
|
+
|
|
17
|
+
#### Input
|
|
18
|
+
|
|
19
|
+
`$ARGUMENTS`
|
|
20
|
+
|
|
21
|
+
#### Project Context
|
|
22
|
+
|
|
23
|
+
The project ID may be:
|
|
24
|
+
|
|
25
|
+
- Provided in `input` (e.g., "P-inventory-mgmt")
|
|
26
|
+
- Known from previous conversation context
|
|
27
|
+
- Specified along with additional instructions in `input`
|
|
28
|
+
|
|
29
|
+
#### Instructions
|
|
30
|
+
|
|
31
|
+
Retrieve the project using MCP `get_issue` to access its comprehensive description and requirements.
|
|
32
|
+
|
|
33
|
+
### 2. Analyze Project Specification
|
|
34
|
+
|
|
35
|
+
**Thoroughly analyze the project description to identify natural epic boundaries:**
|
|
36
|
+
|
|
37
|
+
- **Use context7 MCP tool** to research architectural patterns and best practices
|
|
38
|
+
- **Search codebase** for similar epic structures or patterns
|
|
39
|
+
- Extract all functional requirements from the project description
|
|
40
|
+
- Identify major technical components and systems
|
|
41
|
+
- Consider cross-cutting concerns (security, testing, deployment, monitoring)
|
|
42
|
+
- Group related functionality into cohesive work streams
|
|
43
|
+
- Identify dependencies between work streams
|
|
44
|
+
- Consider development phases and prerequisites
|
|
45
|
+
- Note any specific instructions provided in `input`
|
|
46
|
+
|
|
47
|
+
### 3. Gather Additional Information
|
|
48
|
+
|
|
49
|
+
**Ask clarifying questions as needed to refine the epic structure:**
|
|
50
|
+
|
|
51
|
+
Use this structured approach:
|
|
52
|
+
|
|
53
|
+
- **Ask one question at a time** with specific options
|
|
54
|
+
- **Focus on epic boundaries** - understand where one epic ends and another begins
|
|
55
|
+
- **Identify component relationships** - how epics interact with each other
|
|
56
|
+
- **Continue until complete** - don't stop until you have clear epic structure
|
|
57
|
+
|
|
58
|
+
Key areas to clarify:
|
|
59
|
+
|
|
60
|
+
- **Epic Boundaries**: Where does one epic end and another begin?
|
|
61
|
+
- **Dependencies**: Which epics must complete before others can start?
|
|
62
|
+
- **Technical Grouping**: Should technical concerns be separate epics or integrated?
|
|
63
|
+
- **Phases**: Should there be phase-based epics (MVP, Enhancement, etc.)?
|
|
64
|
+
- **Non-functional**: How to handle security, performance, monitoring as epics?
|
|
65
|
+
|
|
66
|
+
**Example questioning approach:**
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
How should the authentication system be organized as an epic?
|
|
70
|
+
Options:
|
|
71
|
+
- A) Separate epic for all authentication (login, registration, password reset)
|
|
72
|
+
- B) Integrate authentication into each functional epic
|
|
73
|
+
- C) Split into multiple epics (core auth, advanced features, integrations)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Continue until the epic structure:
|
|
77
|
+
|
|
78
|
+
- Covers all aspects of the project specification
|
|
79
|
+
- Has clear boundaries and scope
|
|
80
|
+
- Enables parallel development where possible
|
|
81
|
+
- Supports logical feature breakdown
|
|
82
|
+
|
|
83
|
+
### 4. Generate Epic Structure
|
|
84
|
+
|
|
85
|
+
For each epic, create:
|
|
86
|
+
|
|
87
|
+
- **Title**: Clear, descriptive name (3-5 words)
|
|
88
|
+
- **Description**: Comprehensive explanation including:
|
|
89
|
+
- Purpose and goals
|
|
90
|
+
- Major components and deliverables
|
|
91
|
+
- **Detailed Acceptance Criteria**: Specific, measurable requirements that define epic completion, including:
|
|
92
|
+
- Functional deliverables with clear success metrics
|
|
93
|
+
- Integration requirements with other epics or external systems
|
|
94
|
+
- Performance and quality standards specific to this epic
|
|
95
|
+
- Security and compliance requirements
|
|
96
|
+
- User experience and usability criteria
|
|
97
|
+
- Testing and validation requirements
|
|
98
|
+
- Technical considerations
|
|
99
|
+
- Dependencies on other epics
|
|
100
|
+
- Estimated scale (number of features)
|
|
101
|
+
- **User Stories** - Key user scenarios this epic addresses
|
|
102
|
+
- **Non-functional Requirements** - Performance, security, scalability considerations specific to this epic
|
|
103
|
+
|
|
104
|
+
### 5. Create Epics Using MCP
|
|
105
|
+
|
|
106
|
+
For each epic, call the Task Trellis MCP `create_issue` tool:
|
|
107
|
+
|
|
108
|
+
- `type`: Set to `"epic"`
|
|
109
|
+
- `parent`: The project ID
|
|
110
|
+
- `title`: Generated epic title
|
|
111
|
+
- `status`: Set to `"open"` (default, ready to begin work) or `"draft"` unless specified
|
|
112
|
+
- `prerequisites`: List of epic IDs that must complete first
|
|
113
|
+
- `description`: Comprehensive epic description with all elements from step 4
|
|
114
|
+
|
|
115
|
+
**For standalone epics**: Simply omit the `parent` parameter entirely.
|
|
116
|
+
|
|
117
|
+
### 6. Verify Created Project
|
|
118
|
+
|
|
119
|
+
Call the `issue-verifier` sub-agent to validate the created project:
|
|
120
|
+
|
|
121
|
+
**Prepare verification inputs:**
|
|
122
|
+
|
|
123
|
+
- Original specifications from `$ARGUMENTS`
|
|
124
|
+
- Created issue ID(s) from the MCP response
|
|
125
|
+
- Any additional context gathered during requirement gathering phase
|
|
126
|
+
|
|
127
|
+
**Call the verifier:**
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
Verify the created project for completeness and correctness:
|
|
131
|
+
- Original requirements: [Include the original $ARGUMENTS specifications]
|
|
132
|
+
- Created issue ID(s): [issue-id from MCP response]
|
|
133
|
+
- Additional context: [Include any clarifications, decisions, or requirements gathered during the interactive Q&A phase]
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Review verification results:**
|
|
137
|
+
|
|
138
|
+
- If verdict is `APPROVED`: Proceed to output format
|
|
139
|
+
- If verdict is `NEEDS REVISION`: Evaluate the feedback and, if applicable, update the project using MCP based on recommendations
|
|
140
|
+
- If verdict is `REJECTED`: Evaluate the feedback and, if applicable, recreate the project addressing critical issues
|
|
141
|
+
|
|
142
|
+
If you're not 100% sure of the correctness of the feedback, **STOP** and ask the user for clarification.
|
|
143
|
+
|
|
144
|
+
### 7. Output Format
|
|
145
|
+
|
|
146
|
+
After successful creation:
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
✅ Successfully created [N] epics for project "[Project Title]"
|
|
150
|
+
|
|
151
|
+
📋 Created Epics:
|
|
152
|
+
1. E-[id1]: [Epic 1 Title]
|
|
153
|
+
→ Dependencies: none
|
|
154
|
+
|
|
155
|
+
2. E-[id2]: [Epic 2 Title]
|
|
156
|
+
→ Dependencies: E-[id1]
|
|
157
|
+
|
|
158
|
+
3. E-[id3]: [Epic 3 Title]
|
|
159
|
+
→ Dependencies: E-[id1], E-[id2]
|
|
160
|
+
|
|
161
|
+
📊 Epic Summary:
|
|
162
|
+
- Total Epics: [N]
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Simplicity Principles
|
|
166
|
+
|
|
167
|
+
When creating epics, follow these guidelines:
|
|
168
|
+
|
|
169
|
+
### Keep It Simple:
|
|
170
|
+
|
|
171
|
+
- **No over-engineering** - Create only the epics needed for the project
|
|
172
|
+
- **No extra features** - Don't add functionality that wasn't requested
|
|
173
|
+
- **Choose straightforward approaches** - Simple epic structure over complex hierarchies
|
|
174
|
+
- **Solve the actual problem** - Don't anticipate future requirements
|
|
175
|
+
|
|
176
|
+
### Forbidden Patterns:
|
|
177
|
+
|
|
178
|
+
- **NO premature optimization** - Don't optimize epic structure unless requested
|
|
179
|
+
- **NO feature creep** - Stick to the specified project requirements
|
|
180
|
+
- **NO complex dependencies** - Keep epic relationships simple and clear
|
|
181
|
+
|
|
182
|
+
### Modular Architecture:
|
|
183
|
+
|
|
184
|
+
- **Clear boundaries** - Each epic should have distinct, well-defined responsibilities
|
|
185
|
+
- **Minimal coupling** - Epics should interact through clean interfaces, not internal dependencies
|
|
186
|
+
- **High cohesion** - Related functionality should be grouped within the same epic
|
|
187
|
+
- **Clean interfaces** - Define clear contracts between epics for data and functionality exchange
|
|
188
|
+
|
|
189
|
+
## Question Guidelines
|
|
190
|
+
|
|
191
|
+
Ask questions that:
|
|
192
|
+
|
|
193
|
+
- **Clarify epic boundaries**: What functionality belongs together?
|
|
194
|
+
- **Identify dependencies**: What must be built first?
|
|
195
|
+
- **Consider team structure**: Can epics be worked on in parallel?
|
|
196
|
+
- **Plan for phases**: MVP vs full implementation?
|
|
197
|
+
- **Address non-functionals**: Where do performance/security requirements fit?
|
|
198
|
+
|
|
199
|
+
<rules>
|
|
200
|
+
<critical>Use MCP tools for all operations (create_issue, get_issue, etc.)</critical>
|
|
201
|
+
<critical>Ask one question at a time with specific options</critical>
|
|
202
|
+
<critical>Continue asking questions until you have complete understanding of epic boundaries</critical>
|
|
203
|
+
<important>Epic descriptions must be detailed enough for feature creation</important>
|
|
204
|
+
</rules>
|