assess_create_project
Create a new project in the Assess realm to organize tasks and ideas using the ADD framework, allowing you to define project details and optional start dates.
Instructions
Create a new project in Assess realm.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| projectName | Yes | Project name/description (max 1500 chars) | |
| startDate | No | Optional start date (ISO format) | |
| collectionRecordName | No | Optional recordName of the parent collection. |
Implementation Reference
- src/index.ts:948-965 (handler)The handler function that implements the tool logic. Creates a mock CloudKit project record in Assess realm (realmId=1), generates recordName and uniqueId using UUID, sets required fields like projectName, timestamps, optional startDate and collection reference, and returns a success message with the new recordName.private async createProject(projectName: string, startDateISO?: string, collectionRecordName?: string) { const now = Date.now(); const projectRecordName = `project_ck_${uuidv4()}`; const project: ZenTaskticProject = { recordType: 'Projects', recordName: projectRecordName, fields: { projectName: { value: projectName }, realmId: { value: REALM_ASSESS_ID }, uniqueId: { value: uuidv4() }, startDate: { value: startDateISO ? new Date(startDateISO).getTime() : now }, lastModified: { value: now }, ...(collectionRecordName && { collection: { value: { recordName: collectionRecordName, action: 'NONE' } } }), } }; // Mock save: console.log('Mock CloudKit: Creating Project', project); return { content: [{ type: 'text', text: `Project "${projectName}" created in Assess realm with ID ${projectRecordName}.` }] }; }
- src/index.ts:283-294 (schema)The input schema definition for the 'assess_create_project' tool, specifying properties like projectName (required), optional startDate (ISO datetime), and collectionRecordName.name: 'assess_create_project', description: 'Create a new project in Assess realm.', inputSchema: { type: 'object', properties: { projectName: { type: 'string', description: 'Project name/description (max 1500 chars)' }, startDate: { type: 'string', format: 'date-time', description: 'Optional start date (ISO format)' }, collectionRecordName: { type: 'string', description: 'Optional recordName of the parent collection.' } }, required: ['projectName'] } },
- src/index.ts:666-668 (registration)The switch case in the CallToolRequestSchema handler that registers and dispatches to the createProject handler method for the tool name 'assess_create_project'.this.validateArgs(args, ['projectName']); return await this.createProject(args.projectName, args.startDate, args.collectionRecordName); case 'assess_edit_project':
- src/index.ts:110-131 (schema)Type definition (schema) for ZenTaskticProject used in the handler to structure the CloudKit record fields.export interface ZenTaskticProject { recordName?: string; recordType: 'Projects'; // Note: entity name is 'Projects' in Core Data fields: { projectName: { value: string }; // Max 1500 chars realmId: { value: number }; // Integer 16, default 0 uniqueId: { value: string }; // UUID // References (relationships in Core Data) context?: { value: CKReference }; // Reference to Contexts record collection?: { value: CKReference }; // Reference to Collections record realm?: { value: CKReference }; // Reference to Realms record tasks?: { value: CKReference[] }; // List of references to Task records // Dates startDate?: { value: number }; // Timestamp endDate?: { value: number }; // Timestamp lastModified: { value: number }; // Timestamp // removed description (use projectName), removed isCompleted }; }