evaluate_tile
Assess research ideas by rating impact, feasibility, and uniqueness, including calculations or pilot studies to support evaluation.
Instructions
Evaluate a leaf tile (concrete idea/project) on impact, feasibility, and uniqueness. Include any calculations or pilot studies performed.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tileId | Yes | ID of the tile to evaluate | |
| impact | No | Impact rating (1-10 scale) | |
| feasibility | No | Feasibility rating (1-10 scale) | |
| uniqueness | No | Uniqueness rating (1-10 scale) | |
| timeframe | No | Expected timeframe (e.g., '1-2 years', '5-10 years') | |
| notes | No | Additional evaluation notes | |
| calculationsOrPilots | No | Calculations or pilot studies performed to evaluate this idea |
Implementation Reference
- src/research-tree.ts:253-277 (handler)Core implementation of evaluateTile method in ResearchTreeManager class. Updates the tile's evaluation properties (impact, feasibility, uniqueness, etc.) and returns the updated tile.evaluateTile( tileId: string, evaluation: { impact?: number; feasibility?: number; uniqueness?: number; timeframe?: string; notes?: string; calculationsOrPilots?: string; } ): Tile { const tile = this.tiles.get(tileId); if (!tile) { throw new Error(`Tile ${tileId} not found`); } if (!tile.isLeaf) { console.warn(`Tile ${tileId} is not a leaf node. Consider evaluating leaf nodes for best practice.`); } tile.evaluation = evaluation; tile.updatedAt = new Date(); return tile; }
- src/index.ts:137-179 (schema)Tool definition including name, description, and input schema for 'evaluate_tile' validation.name: "evaluate_tile", description: "Evaluate a leaf tile (concrete idea/project) on impact, feasibility, and uniqueness. Include any calculations or pilot studies performed.", inputSchema: { type: "object", properties: { tileId: { type: "string", description: "ID of the tile to evaluate", }, impact: { type: "number", description: "Impact rating (1-10 scale)", minimum: 1, maximum: 10, }, feasibility: { type: "number", description: "Feasibility rating (1-10 scale)", minimum: 1, maximum: 10, }, uniqueness: { type: "number", description: "Uniqueness rating (1-10 scale)", minimum: 1, maximum: 10, }, timeframe: { type: "string", description: "Expected timeframe (e.g., '1-2 years', '5-10 years')", }, notes: { type: "string", description: "Additional evaluation notes", }, calculationsOrPilots: { type: "string", description: "Calculations or pilot studies performed to evaluate this idea", }, }, required: ["tileId"], }, },
- src/index.ts:470-487 (registration)MCP server handler switch case for 'evaluate_tile' that parses arguments and delegates to treeManager.evaluateTile.case "evaluate_tile": { const result = treeManager.evaluateTile(args.tileId as string, { impact: args.impact as number | undefined, feasibility: args.feasibility as number | undefined, uniqueness: args.uniqueness as number | undefined, timeframe: args.timeframe as string | undefined, notes: args.notes as string | undefined, calculationsOrPilots: args.calculationsOrPilots as string | undefined, }); return { content: [ { type: "text", text: JSON.stringify(result, null, 2), }, ], }; }
- src/research-tree.ts:26-33 (schema)Tile interface definition including the evaluation object structure used by evaluateTile.evaluation?: { impact?: number; // 1-10 scale feasibility?: number; // 1-10 scale uniqueness?: number; // 1-10 scale timeframe?: string; // e.g., "1-2 years" notes?: string; calculationsOrPilots?: string; // Studies done to evaluate };