fix(ralph-loop): harden oracle verification flow
Capture oracle verification sessions more reliably and accept parent-session VERIFIED evidence so ULW loops do not retry after successful review. Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -20,6 +20,26 @@ export function createToolExecuteBeforeHandler(args: {
|
||||
) => Promise<void> {
|
||||
const { ctx, hooks } = args
|
||||
|
||||
function buildUltraworkOracleVerificationPrompt(prompt: string, originalTask: string, verificationAttemptId: string): string {
|
||||
const verificationPrompt = [
|
||||
"You are verifying the active ULTRAWORK loop result for this session.",
|
||||
"",
|
||||
"Original task:",
|
||||
originalTask,
|
||||
"",
|
||||
"Review the work skeptically and critically.",
|
||||
"Assume it may be incomplete, misleading, or subtly broken until the evidence proves otherwise.",
|
||||
"Look for missing scope, weak verification, process violations, hidden regressions, and any reason the task should NOT be considered complete.",
|
||||
"",
|
||||
`If the work is fully complete, end your response with <promise>${ULTRAWORK_VERIFICATION_PROMISE}</promise>.`,
|
||||
"If the work is not complete, explain the blocking issues clearly and DO NOT emit that promise.",
|
||||
"",
|
||||
`<ulw_verification_attempt_id>${verificationAttemptId}</ulw_verification_attempt_id>`,
|
||||
].join("\n")
|
||||
|
||||
return `${prompt ? `${prompt}\n\n` : ""}${verificationPrompt}`
|
||||
}
|
||||
|
||||
return async (input, output): Promise<void> => {
|
||||
await hooks.writeExistingFileGuard?.["tool.execute.before"]?.(input, output)
|
||||
await hooks.questionLabelTruncator?.["tool.execute.before"]?.(input, output)
|
||||
@@ -91,7 +111,11 @@ export function createToolExecuteBeforeHandler(args: {
|
||||
verification_session_id: undefined,
|
||||
})
|
||||
argsObject.run_in_background = false
|
||||
argsObject.prompt = `${prompt ? `${prompt}\n\n` : ""}You are verifying the active ULTRAWORK loop result for this session. Review whether the original task is truly complete: ${loopState.prompt}\n\nIf the work is fully complete, end your response with <promise>${ULTRAWORK_VERIFICATION_PROMISE}</promise>. If the work is not complete, explain the blocking issues clearly and DO NOT emit that promise.\n\n<ulw_verification_attempt_id>${verificationAttemptId}</ulw_verification_attempt_id>`
|
||||
argsObject.prompt = buildUltraworkOracleVerificationPrompt(
|
||||
prompt,
|
||||
loopState.prompt,
|
||||
verificationAttemptId,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user