import { PromptDefinition } from './types.js'; /** * Prompt for structured comparison of options with explicit criteria. */ export const tradeoffsPrompt: PromptDefinition = { name: 'tradeoffs', description: 'Compare options with explicit criteria and trade-off analysis. Provides structured evaluation to help make informed decisions.', arguments: [ { name: 'options', description: 'The options to compare (comma-separated list or detailed descriptions)', required: true, }, { name: 'criteria', description: 'Evaluation criteria (comma-separated, e.g., "cost, complexity, performance")', required: true, }, { name: 'context', description: 'Decision context, constraints, or background', required: false, }, { name: 'weights', description: 'Which criteria matter most (priority order or weights)', required: false, }, ], buildMessages: (args: Record) => { const { options, criteria, context, weights } = args; if (!options) { throw new Error('options argument is required'); } if (!criteria) { throw new Error('criteria argument is required'); } let messageText = `Provide a structured trade-off analysis: **OPTIONS TO COMPARE:** ${options} **EVALUATION CRITERIA:** ${criteria} `; if (context) { messageText += ` **CONTEXT/CONSTRAINTS:** ${context} `; } if (weights) { messageText += ` **PRIORITY CRITERIA:** ${weights} `; } messageText += ` **YOUR TASK:** 1. **Assess each option** against each criterion - Use concrete ratings or descriptions, not vague terms - Note specific strengths and weaknesses 2. **Identify trade-offs** - Where do options excel vs struggle? - What do you gain/lose with each choice? 3. **Highlight disagreements** - Where might reasonable people disagree? - What depends on assumptions or preferences? 4. **Recommendation** - Given the stated priorities, which option fits best? - Under what conditions might a different option be better? Present this as a structured analysis that helps decision-making, not just a list of pros/cons.`; return [ { role: 'user', content: { type: 'text', text: messageText, }, }, ]; }, };