Skip to main content
Glama

decide_move_project_to_assess_from_decide

Transfer a project from the Decide realm to the Assess realm to modify or update its content, ensuring alignment with the ADD framework for task management.

Instructions

Move project to Assess realm from Decide realm.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
projectRecordNameYesProject record name

Implementation Reference

  • src/index.ts:510-520 (registration)
    Tool registration in the ListToolsRequestSchema handler, defining the tool name, description, and input schema.
    { name: 'decide_move_project_to_assess_from_decide', description: 'Move project to Assess realm from Decide realm.', inputSchema: { type: 'object', properties: { projectRecordName: { type: 'string', description: 'Project record name' } }, required: ['projectRecordName'] } },
  • Primary handler function executed for this tool. Validates the realm transition rules and delegates to the generic moveItemToRealm helper if valid.
    private async moveProjectToRealm(projectRecordName: string, targetRealm: string) { // Add validation before moving const validationResult = await this.validateRealmTransition(projectRecordName, 'Project', targetRealm as RealmString); if (!validationResult.valid) { throw new McpError(ErrorCode.InvalidParams, validationResult.reason); } return this.moveItemToRealm(projectRecordName, 'Project', targetRealm as RealmString); }
  • Dispatch handler in the CallToolRequestSchema switch statement that invokes the specific moveProjectToRealm method with target 'assess'.
    case 'decide_move_project_to_assess_from_decide': this.validateArgs(args, ['projectRecordName']); return await this.moveProjectToRealm(args.projectRecordName, 'assess');
  • Core helper function that performs the realm change logic, generates response message, and applies realm-specific field cleanup (e.g., clears context/due date when moving to Assess).
    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 }] }; }
  • Helper function containing the specific validation logic for transitions from Decide realm, explicitly allowing move back to Assess for re-evaluation.
    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}` }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dragosroua/addtaskmanager-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server