append_modified_files
Records file modifications for task tracking by appending changed files and their descriptions to a trellis issue, maintaining an audit trail for code review and change management.
Instructions
Appends modified files information to a trellis issue in the task trellis system
Use this tool to record files that have been modified during task execution, along with descriptions of the modifications made. This helps maintain a comprehensive record of changes associated with each work item for tracking and audit purposes.
File modification tracking purposes:
Record which files were changed during task execution
Document the nature of changes made to each file
Maintain audit trail of file-level modifications
Support code review and change management processes
Enable impact analysis for future changes
Input requirements:
Issue ID: The unique identifier of the trellis issue to update
Files Changed: A record mapping file paths to descriptions of modifications
File path guidelines:
Use relative paths from project root (e.g., "src/components/Button.tsx")
Include file extensions for clarity
Use forward slashes for path separators
Description guidelines:
Provide clear, concise descriptions of what was changed
Focus on the purpose and impact of changes rather than implementation details
Use consistent terminology across related modifications
The tool automatically merges descriptions for files that were previously modified, creating a comprehensive change history for each file within the context of the trellis issue.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the trellis issue to update with modified files information | |
| filesChanged | Yes | Record of file paths to descriptions of modifications made |
Implementation Reference
- The handler function that executes the core logic of the 'append_modified_files' tool by parsing input arguments and delegating to the TaskTrellisService.appendModifiedFiles method.export async function handleAppendModifiedFiles( service: TaskTrellisService, repository: Repository, args: unknown, ): Promise<{ content: Array<{ type: string; text: string }> }> { const { id, filesChanged } = args as { id: string; filesChanged: Record<string, string>; }; return await service.appendModifiedFiles(repository, id, filesChanged); }
- The input schema definition for the 'append_modified_files' tool, specifying the expected parameters: issue ID and filesChanged object.inputSchema: { type: "object", properties: { id: { type: "string", description: "ID of the trellis issue to update with modified files information", }, filesChanged: { type: "object", description: "Record of file paths to descriptions of modifications made", additionalProperties: { type: "string", }, }, }, required: ["id", "filesChanged"], },
- src/server.ts:178-188 (registration)Registration of the appendModifiedFilesTool in the MCP server's list of available tools returned by ListToolsRequestHandler.createObjectTool, updateObjectTool, getObjectTool, deleteObjectTool, listObjectsTool, appendObjectLogTool, appendModifiedFilesTool, claimTaskTool, getNextAvailableIssueTool, completeTaskTool, ];
- src/server.ts:268-269 (registration)Registration of the tool handler in the CallToolRequestHandler switch statement.case "append_modified_files": return handleAppendModifiedFiles(_getService(), repository, args);
- The core helper function implementing the logic to append modified files to a trellis object by calling appendAffectedFiles and persisting the changes.export async function appendModifiedFiles( repository: Repository, id: string, filesChanged: Record<string, string>, ): Promise<{ content: Array<{ type: string; text: string }> }> { const trellisObject = await repository.getObjectById(id); if (!trellisObject) { return { content: [ { type: "text", text: `Object with ID ${id} not found`, }, ], }; } // Append the affected files to the trellis object await appendAffectedFiles(repository, trellisObject, filesChanged); // Save the updated object await repository.saveObject(trellisObject); const fileCount = Object.keys(filesChanged).length; const fileText = fileCount === 1 ? "file" : "files"; return { content: [ { type: "text", text: `Successfully appended ${fileCount} modified ${fileText} to object ${id}`, }, ], }; }