assess_create_idea
Capture and evaluate new ideas in the Assess realm using the ADD framework. Input idea details and optionally link to a parent collection for structured task management.
Instructions
Capture a new idea (always starts in Assess realm).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| collectionRecordName | No | Optional recordName of the parent collection. | |
| ideaName | Yes | Idea name/details (max 1500 chars) |
Implementation Reference
- src/index.ts:967-982 (handler)Executes the tool: creates a mock CloudKit 'Ideas' record in Assess realm (realmId=1), generates UUIDs, sets timestamps, optionally links to collection, returns success message with recordName. Uses CloudKitService in production mode.private async createIdea(ideaName: string, collectionRecordName?: string) { const now = Date.now(); const ideaRecordName = `idea_ck_${uuidv4()}`; const idea: ZenTaskticIdea = { recordType: 'Ideas', recordName: ideaRecordName, fields: { ideaName: { value: ideaName }, realmId: { value: REALM_ASSESS_ID }, // Ideas always start in Assess uniqueId: { value: uuidv4() }, lastModified: { value: now }, ...(collectionRecordName && { collection: { value: { recordName: collectionRecordName, action: 'NONE' } } }), } }; // Mock save: console.log('Mock CloudKit: Creating Idea', idea); return { content: [{ type: 'text', text: `Idea "${ideaName}" captured in Assess realm with ID ${ideaRecordName}.` }] };
- src/index.ts:671-673 (registration)Registers and handles tool calls by dispatching to createIdea method after argument validation.case 'assess_create_idea': this.validateArgs(args, ['ideaName']); return await this.createIdea(args.ideaName, args.collectionRecordName);
- src/index.ts:295-305 (schema)Tool metadata including name, description, and input schema definition returned in tools/list response.{ name: 'assess_create_idea', description: 'Capture a new idea (always starts in Assess realm).', inputSchema: { type: 'object', properties: { ideaName: { type: 'string', description: 'Idea name/details (max 1500 chars)' }, collectionRecordName: { type: 'string', description: 'Optional recordName of the parent collection.' } }, required: ['ideaName'] }
- src/index.ts:133-149 (schema)TypeScript interface defining the structure of Idea records for CloudKit, used in createIdea handler.export interface ZenTaskticIdea { recordName?: string; recordType: 'Ideas'; // Note: entity name is 'Ideas' in Core Data fields: { ideaName: { value: string }; // Max 1500 chars, combines original title & body realmId: { value: number }; // Integer 16, default 0 (usually REALM_ASSESS_ID) uniqueId: { value: string }; // UUID lastModified: { value: number }; // Timestamp // References (relationships in Core Data) collection?: { value: CKReference }; // Reference to Collections record realm?: { value: CKReference }; // Reference to Realms record tasks?: { value: CKReference[] }; // Tasks derived from this idea // removed createdAt, use lastModified or CloudKit system creationDate }; }