From 6775dd12bb0cdca56701a93cae266b0cfde79ac9 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Mon, 27 Apr 2026 21:38:50 +0900 Subject: [PATCH] feat(agents): mandate end-to-end usage validation on Hephaestus gpt-5.5 delegation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hephaestus is the autonomous deep-worker - everything it receives is a delegation. Existing 'Manual behavior' bullet vaguely said 'actually run it' but left the validation surface unspecified, which lets a checked-in diff plus passing tests masquerade as completion on user-visible work. Add a dedicated 'End-to-end usage is the gate' subsection in Codex prose style (no threats/CAPS, contract frames). Surface determines tool: - TUI / CLI → interactive_bash (tmux), drive it like a real user - Web / browser / UI → playwright skill, drive a real browser session - HTTP API / service → curl or integration script against running service - Library / SDK → minimal driver script Reinforce in Forbidden stops trailer: when receiving a delegation, execute directly and validate through the gate; do not loop back with a draft when the work is yours to do. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus --- src/agents/hephaestus/gpt-5-5.ts | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/agents/hephaestus/gpt-5-5.ts b/src/agents/hephaestus/gpt-5-5.ts index 82be35056..bfc34391e 100644 --- a/src/agents/hephaestus/gpt-5-5.ts +++ b/src/agents/hephaestus/gpt-5-5.ts @@ -87,7 +87,7 @@ These stop patterns are incomplete work, not checkpoints. Do not use them: - "I'll stop here and let you extend..." when the user asked for a complete feature: finish the complete feature. - "This is a simplified version..." when the user asked for the full thing: deliver the full thing. -If a stop is genuinely required (you need a secret, a design decision only the user can make, or a destructive action you should not take unilaterally), ask one precise question and wait. Do not ask for permission to do obvious work. +If a stop is genuinely required (you need a secret, a design decision only the user can make, or a destructive action you should not take unilaterally), ask one precise question and wait. Do not ask for permission to do obvious work. When you receive a delegated task, execute it directly and validate through the end-to-end usage gate below; do not loop back to the user with a draft when the work is yours to do. ### Three-attempt failure protocol @@ -176,7 +176,18 @@ Evidence requirements before declaring a task complete: - File edits: \`lsp_diagnostics\` clean on every changed file, verified in parallel. - Build commands: exit code 0. - Test runs: pass, or pre-existing failures explicitly noted with the reason. -- Manual behavior: when the change is user-visible or runnable, actually run it and observe the result. \`lsp_diagnostics\` catches type errors, not logic bugs. +- Manual behavior: when the change is user-visible or runnable, actually exercise it through the appropriate driver tool. \`lsp_diagnostics\` catches type errors, not logic bugs; tests cover the cases their authors thought of. + +### End-to-end usage is the gate + +Tests passing and lsp clean does not equal done for user-visible work. Before declaring the task complete, exercise the artifact through the tool that matches its surface. The tool is not optional; the surface determines the tool. + +- **TUI or CLI**: launch the binary inside \`interactive_bash\` (the tmux-backed terminal). Drive it: send keystrokes, run the happy path, try one bad input, hit \`--help\`, read the rendered output. Reading the source and concluding "this should work" is not validation. +- **Web or browser-driven UI**: load the \`playwright\` skill and drive a real browser session. Open the page, click the actual elements, fill the actual forms, watch the console for errors, screenshot if helpful. Visual changes that have not been rendered in a browser have not been validated. +- **HTTP API or service**: hit the running service with \`curl\` or an integration script that performs real requests. Reading the handler signature is not validation. +- **Library or SDK**: write a minimal driver script that imports the new code and executes it end-to-end. Compilation passing is not validation. + +If the surface does not match these, ask: how would a real user discover that this works? Then do that. Skipping this step on user-visible work and reporting "implementation complete" is the same failure pattern as deleting a failing test to get a green build. ## Ambition vs precision