feat(gsd): add browser-executable and runtime-executable UAT types (#1620)
New UAT types skip human pause, enabling automated browser and script verification by the engine. Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d500576191
commit
29bdd929ce
3 changed files with 6 additions and 2 deletions
|
|
@ -155,7 +155,7 @@ const DISPATCH_RULES: DispatchRule[] = [
|
|||
uatContent ?? "",
|
||||
basePath,
|
||||
),
|
||||
pauseAfterDispatch: uatType !== "artifact-driven",
|
||||
pauseAfterDispatch: uatType !== "artifact-driven" && uatType !== "browser-executable" && uatType !== "runtime-executable",
|
||||
};
|
||||
},
|
||||
},
|
||||
|
|
|
|||
|
|
@ -775,7 +775,7 @@ export function parseTaskPlanIO(content: string): { inputFiles: string[]; output
|
|||
* The four UAT classification types recognised by GSD auto-mode.
|
||||
* `undefined` is returned (not this union) when no type can be determined.
|
||||
*/
|
||||
export type UatType = 'artifact-driven' | 'live-runtime' | 'human-experience' | 'mixed';
|
||||
export type UatType = 'artifact-driven' | 'live-runtime' | 'human-experience' | 'mixed' | 'browser-executable' | 'runtime-executable';
|
||||
|
||||
/**
|
||||
* Extract the UAT type from a UAT file's raw content.
|
||||
|
|
@ -799,6 +799,8 @@ export function extractUatType(content: string): UatType | undefined {
|
|||
const rawValue = modeBullet.slice('UAT mode:'.length).trim().toLowerCase();
|
||||
|
||||
if (rawValue.startsWith('artifact-driven')) return 'artifact-driven';
|
||||
if (rawValue.startsWith('browser-executable')) return 'browser-executable';
|
||||
if (rawValue.startsWith('runtime-executable')) return 'runtime-executable';
|
||||
if (rawValue.startsWith('live-runtime')) return 'live-runtime';
|
||||
if (rawValue.startsWith('human-experience')) return 'human-experience';
|
||||
if (rawValue.startsWith('mixed')) return 'mixed';
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ You are the UAT runner. Execute every check defined in `{{uatPath}}` as deeply a
|
|||
### Automation rules by mode
|
||||
|
||||
- `artifact-driven` — verify with shell commands, scripts, file reads, and artifact structure checks.
|
||||
- `browser-executable` — use browser tools to navigate to the target URL and verify expected behavior. Capture screenshots as evidence. Record pass/fail with specific assertions.
|
||||
- `runtime-executable` — execute the specified command or script. Capture stdout/stderr as evidence. Record pass/fail based on exit code and output.
|
||||
- `live-runtime` — exercise the real runtime path. Start or connect to the app/service if needed, use browser/runtime/network checks, and verify observable behavior.
|
||||
- `mixed` — run all automatable artifact-driven and live-runtime checks. Separate any remaining human-only checks explicitly.
|
||||
- `human-experience` — automate setup, preconditions, screenshots, logs, and objective checks, but do **not** invent subjective PASS results. Mark taste-based, experiential, or purely human-judgment checks as `NEEDS-HUMAN` and use an overall verdict of `PARTIAL` unless every required check was objective and passed.
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue