diff --git a/src/resources/extensions/sf/tests/auto-prompts-phase3.test.mjs b/src/resources/extensions/sf/tests/auto-prompts-phase3.test.mjs index 4082383d4..ee7bf1833 100644 --- a/src/resources/extensions/sf/tests/auto-prompts-phase3.test.mjs +++ b/src/resources/extensions/sf/tests/auto-prompts-phase3.test.mjs @@ -10,12 +10,7 @@ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, describe, expect, test } from "vitest"; -import { - buildPlanMilestonePrompt, - buildReplanSlicePrompt, - buildResearchSlicePrompt, - buildValidateMilestonePrompt, -} from "../auto-prompts.js"; +import * as AutoPrompts from "../auto-prompts.js"; import { closeDatabase, insertMilestone, @@ -72,7 +67,7 @@ describe("buildPlanMilestonePrompt v2", () => { planning: { vision: "Test.", successCriteria: [] }, }); - const prompt = await buildPlanMilestonePrompt( + const prompt = await AutoPrompts.buildPlanMilestonePrompt( mid, "Test Milestone", dir, @@ -97,7 +92,7 @@ describe("buildPlanMilestonePrompt v2", () => { planning: { vision: "Test.", successCriteria: [] }, }); - const prompt = await buildPlanMilestonePrompt( + const prompt = await AutoPrompts.buildPlanMilestonePrompt( mid, "Minimal Milestone", dir, @@ -122,7 +117,7 @@ describe("buildPlanMilestonePrompt v2", () => { mkdirSync(join(dir, ".sf"), { recursive: true }); writeFileSync(join(dir, ".sf", "QUEUE.md"), "M912 — next in queue\n"); - const prompt = await buildPlanMilestonePrompt( + const prompt = await AutoPrompts.buildPlanMilestonePrompt( mid, "Queue Milestone", dir, @@ -154,7 +149,7 @@ describe("buildReplanSlicePrompt v2", () => { sequence: 1, }); - const prompt = await buildReplanSlicePrompt( + const prompt = await AutoPrompts.buildReplanSlicePrompt( mid, "Replan Milestone", sid, @@ -201,7 +196,7 @@ describe("buildReplanSlicePrompt v2", () => { "---\nblocker_discovered: true\nid: T01\n---\n# T01 Summary\n\nBlocked by external API.\n", ); - const prompt = await buildReplanSlicePrompt( + const prompt = await AutoPrompts.buildReplanSlicePrompt( mid, "Blocker Milestone", sid, @@ -238,7 +233,7 @@ describe("buildValidateMilestonePrompt v2", () => { "# M930 Summary\n\nMilestone done.\n", ); - const prompt = await buildValidateMilestonePrompt( + const prompt = await AutoPrompts.buildValidateMilestonePrompt( mid, "Validate Milestone", dir, @@ -272,7 +267,7 @@ describe("buildResearchSlicePrompt v2", () => { sequence: 1, }); - const prompt = await buildResearchSlicePrompt( + const prompt = await AutoPrompts.buildResearchSlicePrompt( mid, "Research Milestone", sid, diff --git a/src/resources/extensions/sf/tests/auto-prompts-v2-migration.test.mjs b/src/resources/extensions/sf/tests/auto-prompts-v2-migration.test.mjs index 28ec50564..8c2a53a44 100644 --- a/src/resources/extensions/sf/tests/auto-prompts-v2-migration.test.mjs +++ b/src/resources/extensions/sf/tests/auto-prompts-v2-migration.test.mjs @@ -13,15 +13,7 @@ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join } from "node:path"; import { afterEach, describe, expect, test } from "vitest"; -import { - buildChallengePrompt, - buildDeployPrompt, - buildReleasePrompt, - buildResearchMilestonePrompt, - buildRollbackPrompt, - buildRunUatPrompt, - buildSmokeProductionPrompt, -} from "../auto-prompts.js"; +import * as AutoPrompts from "../auto-prompts.js"; import { closeDatabase, insertMilestone, @@ -85,7 +77,7 @@ describe("buildResearchMilestonePrompt v2", () => { planning: { vision: "Test.", successCriteria: [] }, }); - const prompt = await buildResearchMilestonePrompt( + const prompt = await AutoPrompts.buildResearchMilestonePrompt( mid, "Research Milestone", dir, @@ -117,7 +109,7 @@ describe("buildRunUatPrompt v2", () => { sequence: 1, }); - const prompt = await buildRunUatPrompt( + const prompt = await AutoPrompts.buildRunUatPrompt( mid, sid, join(dir, ".sf", "milestones", mid, "slices", sid, `${sid}-UAT.md`), @@ -141,7 +133,11 @@ describe("buildDeployPrompt v2", () => { planning: { vision: "Test.", successCriteria: [] }, }); - const prompt = await buildDeployPrompt(mid, "Deploy Milestone", dir); + const prompt = await AutoPrompts.buildDeployPrompt( + mid, + "Deploy Milestone", + dir, + ); expect(prompt).toContain("## Inlined Context"); }); @@ -158,7 +154,7 @@ describe("buildSmokeProductionPrompt v2", () => { planning: { vision: "Test.", successCriteria: [] }, }); - const prompt = await buildSmokeProductionPrompt( + const prompt = await AutoPrompts.buildSmokeProductionPrompt( mid, "Smoke Milestone", "dr-001", @@ -180,7 +176,11 @@ describe("buildReleasePrompt v2", () => { planning: { vision: "Test.", successCriteria: [] }, }); - const prompt = await buildReleasePrompt(mid, "Release Milestone", dir); + const prompt = await AutoPrompts.buildReleasePrompt( + mid, + "Release Milestone", + dir, + ); expect(prompt).toContain("## Inlined Context"); }); @@ -197,7 +197,7 @@ describe("buildRollbackPrompt v2", () => { planning: { vision: "Test.", successCriteria: [] }, }); - const prompt = await buildRollbackPrompt( + const prompt = await AutoPrompts.buildRollbackPrompt( mid, "Rollback Milestone", "dr-002", @@ -220,7 +220,7 @@ describe("buildChallengePrompt v2", () => { planning: { vision: "Test.", successCriteria: [] }, }); - const prompt = await buildChallengePrompt( + const prompt = await AutoPrompts.buildChallengePrompt( mid, "Challenge Milestone", "milestone", @@ -231,3 +231,15 @@ describe("buildChallengePrompt v2", () => { expect(prompt).toContain("## Inlined Context"); }); }); + +describe.skip("buildRoadmapMeetingPrompt v2 — SKIPPED", () => { + // KNOWN_UNIT_TYPES declares "roadmap-meeting" as a unit type, but + // auto-prompts.js has no `buildRoadmapMeetingPrompt` function exported. + // No builder exists for this unit type — it is handled externally by + // the roadmap-meeting flow. This test documents the known gap so it + // is not silently re-ordered or forgotten. + test("roadmap_meeting_builder_does_not_exist", () => { + // Attempting to import would throw a SyntaxError or MODULE_NOT_FOUND + // if the builder ever appears. The skip is the structural proof. + }); +});