import { PromptDefinition } from './types.js'; /** * Prompt to surface and challenge hidden assumptions in a plan or design. */ export const assumptionsPrompt: PromptDefinition = { name: 'assumptions', description: 'Surface and challenge hidden assumptions in a plan, design, or idea. Identifies implicit premises that could be risky if wrong.', arguments: [ { name: 'plan', description: 'The plan, design, or idea to analyze for hidden assumptions', required: true, }, { name: 'constraints', description: 'Known hard constraints that are definitely true', required: false, }, { name: 'concerns', description: 'Areas where you feel uncertain or worried', required: false, }, ], buildMessages: (args: Record) => { const { plan, constraints, concerns } = args; if (!plan) { throw new Error('plan argument is required'); } let messageText = `Please analyze the hidden assumptions in this plan: **PLAN/DESIGN/IDEA:** ${plan} `; if (constraints) { messageText += ` **KNOWN CONSTRAINTS (definitely true):** ${constraints} `; } if (concerns) { messageText += ` **MY CONCERNS/UNCERTAINTIES:** ${concerns} `; } messageText += ` **YOUR TASK:** Identify the implicit assumptions underlying this plan. For each assumption: 1. **State it explicitly** - What is being assumed without being stated? 2. **Criticality** (high/medium/low) - How important is this assumption to the plan's success? 3. **Fragility** (high/medium/low) - How likely is this assumption to be wrong? 4. **Validation** - How could we test or verify this assumption? Focus on assumptions that: - Are easy to overlook - Would cause significant problems if wrong - Others analyzing this might miss Each LLM should try to find assumptions the others might not catch.`; return [ { role: 'user', content: { type: 'text', text: messageText, }, }, ]; }, };