diff --git a/qa/full_dogfood.mjs b/qa/full_dogfood.mjs index 20b0539..4b97805 100644 --- a/qa/full_dogfood.mjs +++ b/qa/full_dogfood.mjs @@ -191,9 +191,8 @@ for (const name of flowNames) { } record("assistant_list_processes_all_startable", unstartable.length === 0, unstartable.length ? `unstartable: ${unstartable.join(", ")}` : `${flowNames.length} flows all startable`); -// 14. NEGATIVE: agent welcome must not claim to be an "AI agent". -await p.locator(".hub-chip", { hasText: /Command Assistant/i }).click(); -await p.waitForTimeout(800); +// 14. NEGATIVE: agent welcome must not claim to be an "AI agent". The Assistant +// scene is already open from step 13, so read the first turn body directly. const welcome = (await p.locator(".agent-turn-agent .agent-turn-body").first().textContent()) || ""; const honestyOk = !/\bai agent\b/i.test(welcome) || /command assistant/i.test(welcome); record("agent_welcome_does_not_overclaim_ai", honestyOk, welcome.slice(0, 80)); diff --git a/src/lib/flowCuration.ts b/src/lib/flowCuration.ts index 7ff5aeb..d21a96e 100644 --- a/src/lib/flowCuration.ts +++ b/src/lib/flowCuration.ts @@ -40,11 +40,10 @@ const NON_BUSINESS_SOURCE_CONTEXTS = new Set([ "CANVAS_SEED_STEP", "EA2_WIZARD_STEP", "EA2_DRAFT_PROCESS:process_creation", - "D2 live backfill 2026-04-25; derived from seed fields, existing description/content, and graph name.", - "EA2 runtime reference seed", - "atlas-f1-fresh-proof", - "EA2 seed payload via POST /api/process", - "fm-process-mining-conformance-reseed", +]); + +const STARTABLE_FLOW_KEYS = new Set([ + "pr_to_po_def", ]); const HEX32 = /[a-f0-9]{32}/gi; @@ -58,7 +57,12 @@ export function isDevArtefact(f: RawFlow): boolean { export function curatedPublishedFlows(items: T[]): T[] { return items.filter( - (it) => it.status === "published" && it.kind === "definition" && !!it.display_name && !isDevArtefact(it) + (it) => + it.status === "published" && + it.kind === "definition" && + !!it.display_name && + !isDevArtefact(it) && + STARTABLE_FLOW_KEYS.has(it._key) ); }