diff --git a/__tests__/lib/build/artifact-prompts-positioning.test.ts b/__tests__/lib/build/artifact-prompts-positioning.test.ts new file mode 100644 index 00000000..8fa4ecad --- /dev/null +++ b/__tests__/lib/build/artifact-prompts-positioning.test.ts @@ -0,0 +1,32 @@ +import { describe, it, expect } from 'vitest' +import { ARTIFACT_PROMPTS } from '@/lib/build/artifact-prompts' + +// Note on scope: the JSON field name stays `unlike` (components/build/artifacts/ +// company-artifacts.tsx:66,74 renders it as a real "Unlike the alternatives" +// section — renaming it would be a UI change out of this task's scope). What +// must change is the INSTRUCTION TEXT: the model should no longer be told to +// produce combative "unlike the alternatives" contrasts against named +// competitors — this test pins that softer framing, not the literal absence +// of the schema key's name. +describe('positioning prompt — no forced "unlike the alternatives" framing (#BLD-09)', () => { + it('the real prompt-building function does not instruct the model to contrast against "the alternatives"', () => { + const prompt = ARTIFACT_PROMPTS.positioning.user({ + idea: 'a scheduling app', + track: 'company', + companyName: 'Acme', + prior: {}, + }) + expect(prompt.toLowerCase()).not.toContain('unlike the alternatives') + expect(prompt.toLowerCase()).not.toContain('contrasts') + }) + + it('instructs positive differentiators instead', () => { + const prompt = ARTIFACT_PROMPTS.positioning.user({ + idea: 'a scheduling app', + track: 'company', + companyName: 'Acme', + prior: {}, + }) + expect(prompt.toLowerCase()).toContain('differentiators') + }) +}) diff --git a/lib/build/artifact-prompts.ts b/lib/build/artifact-prompts.ts index 6d7c847d..244f1eac 100644 --- a/lib/build/artifact-prompts.ts +++ b/lib/build/artifact-prompts.ts @@ -98,7 +98,9 @@ export const ARTIFACT_PROMPTS: Record = { user: (ctx) => ctxPreamble(ctx) + 'Write POSITIONING. JSON: statement (a sharp "for X, this is the Y that Z" positioning line), ' + - 'unlike (array of 3 "unlike the alternatives" contrasts). Schema: {"statement","unlike":[...]}', + 'unlike (array of up to 3 things that make this company distinct, phrased as positive ' + + 'differentiators rather than named against specific competitors). ' + + 'Schema: {"statement","unlike":[...]}', }, landing: { system: BASE_SYSTEM,