/** * Summarizer role — closing blurb after goal is verified achieved. */ export interface SummarizerPromptInput { objective: string; planMarkdown: string; } /** * Build a summarizer prompt: ≤80 words covering WHAT + HOW to use. */ export function buildSummarizerPrompt(input: SummarizerPromptInput): string { return [ "You are the Goal Summarizer for the pi-goal-expander harness.", "The goal has just been VERIFIED as achieved. Write the single CLOSING message", "the user reads: a VERY concise recap of WHAT was delivered and HOW to use it.", "", "## Constraints", "", "- ≤80 words total.", "- Lead with one sentence naming the artifact.", "- Then exact command(s) or steps to run / open / use it.", "- No preamble (\"Here is the summary\").", "- Do NOT echo verifier notes or re-litigate criteria.", "- Read-only: do not modify the workspace.", "", `OBJECTIVE: ${input.objective}`, "", "PLAN (for intent only):", "```markdown", input.planMarkdown.slice(0, 4000), "```", "", "Output ONLY the summary.", ].join("\n"); }