fix: default UAT type to artifact-driven to prevent unnecessary auto-mode pauses (#1651)

When a UAT file has no `## UAT Type` section, `extractUatType()` returns
`undefined`. The fallback was `"human-experience"`, causing `pauseAfterDispatch:
true` in the auto-dispatch rule. Since doctor-generated UAT placeholders never
include a UAT Type section and LLM-executed UATs are always artifact-driven,
the correct default is `"artifact-driven"`.

Closes #1649

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
TÂCHES 2026-03-20 15:11:55 -06:00 committed by GitHub
parent b124b79a12
commit 39f9faffa8

View file

@ -759,8 +759,8 @@ export async function checkNeedsRunUat(
if (hasResult) return null;
}
// Classify UAT type; unknown type → treat as human-experience (human review)
const uatType = extractUatType(uatContent) ?? "human-experience";
// Classify UAT type; default to artifact-driven (LLM-executed UATs are always artifact-driven)
const uatType = extractUatType(uatContent) ?? "artifact-driven";
return { sliceId: sid, uatType };
}
@ -1403,7 +1403,7 @@ export async function buildRunUatPrompt(
const inlinedContext = capPreamble(`## Inlined Context (preloaded — do not re-read these files)\n\n${inlined.join("\n\n---\n\n")}`);
const uatResultPath = join(base, relSliceFile(base, mid, sliceId, "UAT-RESULT"));
const uatType = extractUatType(uatContent) ?? "human-experience";
const uatType = extractUatType(uatContent) ?? "artifact-driven";
return loadPrompt("run-uat", {
workingDirectory: base,