decide_move_task_to_assess_from_decide
Move a task from the Decide realm to the Assess realm for review and editing when priorities or details need adjustment before action.
Instructions
Move task to Assess realm from Decide realm.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| taskRecordName | Yes | Task record name |
Implementation Reference
- src/index.ts:488-498 (registration)Registration of the tool 'decide_move_task_to_assess_from_decide' in the listTools response, including name, description, and input schema definition.{ name: 'decide_move_task_to_assess_from_decide', description: 'Move task to Assess realm from Decide realm.', inputSchema: { type: 'object', properties: { taskRecordName: { type: 'string', description: 'Task record name' } }, required: ['taskRecordName'] } },
- src/index.ts:721-723 (handler)Dispatch case in the CallToolRequestSchema handler that validates arguments and delegates to the moveTaskToRealm method.case 'decide_move_task_to_assess_from_decide': this.validateArgs(args, ['taskRecordName']); return await this.moveTaskToRealm(args.taskRecordName, 'assess');
- src/index.ts:1042-1048 (handler)Core handler function for moving tasks between realms. Validates the realm transition according to ADD framework rules before executing the move.private async moveTaskToRealm(taskRecordName: string, targetRealm: string) { // Add validation before moving const validationResult = await this.validateRealmTransition(taskRecordName, 'Task', targetRealm as RealmString); if (!validationResult.valid) { throw new McpError(ErrorCode.InvalidParams, validationResult.reason); } return this.moveItemToRealm(taskRecordName, 'Task', targetRealm as RealmString);
- src/index.ts:1200-1214 (helper)Helper function that performs the actual realm move operation, applies realm-specific rules (e.g., clearing context/due dates when moving to Assess), and returns success message.private async moveItemToRealm(itemRecordName: string, itemType: 'Task' | 'Project', targetRealmStr: RealmString) { const targetRealmId = realmStringToId(targetRealmStr); // Mock update realmId and clean up fields based on realm rules let updateMessage = `${itemType} ${itemRecordName} moved to ${targetRealmStr} realm (ID: ${targetRealmId})`; // Apply realm-specific cleanup rules if (targetRealmId === REALM_ASSESS_ID) { updateMessage += '. Context and due date cleared for fresh evaluation'; } else if (targetRealmId === REALM_DECIDE_ID && targetRealmStr !== 'decide') { updateMessage += '. Ready for context assignment and due date setting'; } return { content: [{ type: 'text', text: updateMessage }] }; }
- src/index.ts:1109-1145 (helper)Validation helper specific to transitions from Decide realm. Allows backward move to Assess for re-evaluation and enforces rules for moving to Do (requires context and future due date).private validateFromDecide(item: any, targetRealmId: number, itemType: string): {valid: boolean, reason: string} { switch (targetRealmId) { case REALM_DO_ID: // Decide -> Do // Must have context and due date to move to Do if (!item.contextRecordName) { return { valid: false, reason: `${itemType} must have a context assigned before moving to Do realm` }; } if (!item.endDate) { return { valid: false, reason: `${itemType} must have a due date set before moving to Do realm` }; } // Check if due date is in the future (not stalled) const now = new Date(); const dueDate = new Date(item.endDate); if (dueDate < now) { return { valid: false, reason: `${itemType} has a past due date (${dueDate.toLocaleDateString()}) - update due date or move back to Assess` }; } return { valid: true, reason: `${itemType} ready for Do realm - context and future due date set` }; case REALM_ASSESS_ID: // Decide -> Assess (backward) // Allow backward movement for re-evaluation return { valid: true, reason: `${itemType} moved back to Assess realm for re-evaluation - context and due date will be cleared` }; case REALM_DECIDE_ID: // Decide -> Decide return { valid: false, reason: `${itemType} is already in Decide realm` }; default: return { valid: false, reason: `Invalid target realm ID: ${targetRealmId}` }; } }