diff --git a/scripts/resolvers/preamble.ts b/scripts/resolvers/preamble.ts index bacbc0f0..d9d7bfb2 100644 --- a/scripts/resolvers/preamble.ts +++ b/scripts/resolvers/preamble.ts @@ -426,6 +426,21 @@ Use AskUserQuestion: - Note in output: "Pre-existing test failure skipped: "`; } +function generateConfusionProtocol(): string { + return `## Confusion Protocol + +When you encounter high-stakes ambiguity during coding: +- Two plausible architectures or data models for the same requirement +- A request that contradicts existing patterns and you're unsure which to follow +- A destructive operation where the scope is unclear +- Missing context that would change your approach significantly + +STOP. Name the ambiguity in one sentence. Present 2-3 options with tradeoffs. +Ask the user. Do not guess on architectural or data model decisions. + +This does NOT apply to routine coding, small features, or obvious changes.`; +} + function generateSearchBeforeBuildingSection(ctx: TemplateContext): string { return `## Search Before Building @@ -731,7 +746,7 @@ export function generatePreamble(ctx: TemplateContext): string { generateVendoringDeprecation(ctx), generateSpawnedSessionCheck(), generateVoiceDirective(tier), - ...(tier >= 2 ? [generateContextRecovery(ctx), generateAskUserFormat(ctx), generateCompletenessSection()] : []), + ...(tier >= 2 ? [generateContextRecovery(ctx), generateAskUserFormat(ctx), generateCompletenessSection(), generateConfusionProtocol()] : []), ...(tier >= 3 ? [generateRepoModeSection(), generateSearchBeforeBuildingSection(ctx)] : []), generateCompletionStatus(ctx), ];