update_issue
Modify existing task properties like status, priority, dependencies, or content to manage work item lifecycle and maintain project state in Task Trellis.
Instructions
Updates an existing issue in the task trellis system
Use this tool to modify properties of existing issues such as changing status, priority, prerequisites, or content. Essential for managing work item lifecycle and maintaining project state.
Available status values:
'draft': Initial state for new issues
'open': Ready to begin work (default for new issues)
'in-progress': Currently being worked on
'done': Completed successfully
'wont-do': Cancelled or decided against
Available priority values:
'high': Critical or urgent work
'medium': Standard priority
'low': Nice-to-have or future work
Updatable properties:
'title': Title of the work item
'status': Progress state (follows workflow: draft → open → in-progress → done)
'priority': Importance level (high, medium, low)
'prerequisites': Dependency relationships (add/remove prerequisite issues)
'body': Detailed description or content of the work item
'force': Bypass certain validation checks when necessary
Common update patterns:
Update title: title='New task title'
Mark task as ready: status='open'
Start working: status='in-progress'
Change priority: priority='high'
Add dependencies: prerequisites=[...existing, 'new-prereq-id']
Update description: body='detailed work description'
Complete work: status='done'
Cancel work: status='wont-do'
The update maintains issue integrity by validating relationships and preserving audit trail. Use 'force=true' only when bypassing standard validation is necessary for administrative operations.
Updates automatically refresh the 'updated' timestamp while preserving creation metadata and change history.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ID of the issue to update | |
| title | No | Title of the issue (optional) | |
| priority | No | Priority level (optional) | |
| prerequisites | No | Array of prerequisite issue IDs (optional) | |
| body | No | Body content of the issue (optional) | |
| status | No | Status of the issue (optional) | |
| force | No | Force update flag (defaults to false) |
Implementation Reference
- src/tools/updateObjectTool.ts:85-120 (handler)The handleUpdateObject function is the core handler for the 'update_issue' tool. It parses the input arguments, type-casts them appropriately, and delegates the update logic to the TaskTrellisService's updateObject method.export async function handleUpdateObject( service: TaskTrellisService, repository: Repository, args: unknown, serverConfig: ServerConfig, ) { const { id, title, priority, prerequisites, body, status, force = false, } = args as { id: string; title?: string; priority?: string; prerequisites?: string[]; body?: string; status?: string; force?: boolean; }; return service.updateObject( repository, serverConfig, id, title, priority as TrellisObjectPriority, prerequisites, body, status as TrellisObjectStatus, force, ); }
- src/tools/updateObjectTool.ts:45-82 (schema)The inputSchema defines the structure and validation rules for the 'update_issue' tool parameters, including required 'id' and optional fields like title, status, priority, etc.inputSchema: { type: "object", properties: { id: { type: "string", description: "ID of the issue to update", }, title: { type: "string", description: "Title of the issue (optional)", }, priority: { type: "string", description: "Priority level (optional)", }, prerequisites: { type: "array", items: { type: "string", }, description: "Array of prerequisite issue IDs (optional)", }, body: { type: "string", description: "Body content of the issue (optional)", }, status: { type: "string", description: "Status of the issue (optional)", }, force: { type: "boolean", description: "Force update flag (defaults to false)", default: false, }, }, required: ["id"], },
- src/server.ts:258-259 (registration)In the CallToolRequestSchema handler's switch statement, the 'update_issue' case routes to the handleUpdateObject function with required dependencies.case "update_issue": return handleUpdateObject(_getService(), repository, args, serverConfig);
- src/server.ts:179-179 (registration)The updateObjectTool is imported and included in the tools list returned by ListToolsRequestSchema handler, making it discoverable by MCP clients.updateObjectTool,
- src/server.ts:36-38 (registration)Imports the handler function and tool definition from the tools module for use in server registration.handleUpdateObject, listObjectsTool, updateObjectTool,