diff --git a/src/openhuman/thread_goals/continuation.rs b/src/openhuman/thread_goals/continuation.rs index fc64b3f7c..659372913 100644 --- a/src/openhuman/thread_goals/continuation.rs +++ b/src/openhuman/thread_goals/continuation.rs @@ -150,7 +150,8 @@ fn continuation_prompt(objective: &str) -> String { "[goal continuation] You are resuming autonomous work toward this thread's goal — \ no user is currently present.\n\nGoal: {objective}\n\n\ Assess progress against concrete evidence, then take the next useful step. \ - If the goal is already satisfied, call `goal_complete`. If you are blocked or \ + Verify whether the goal is already satisfied. If yes, call `goal_complete` now. \ + If you are blocked or \ need the user (e.g. an irreversible external action, missing input), stop and \ summarise the blocker and the next step rather than guessing — external actions \ are not auto-approved while you run unattended." diff --git a/src/openhuman/thread_goals/runtime.rs b/src/openhuman/thread_goals/runtime.rs index 13ab5cf54..24833420b 100644 --- a/src/openhuman/thread_goals/runtime.rs +++ b/src/openhuman/thread_goals/runtime.rs @@ -91,8 +91,9 @@ pub async fn pause_for_current_thread(workspace_dir: &Path) { pub fn active_goal_context_block(goal: &ThreadGoal) -> Option { let directive = match goal.status { ThreadGoalStatus::Active => { - "Keep working toward this goal. When evidence confirms it's done, call \ - goal_complete; if the objective has changed, update it with goal_set." + "Keep working toward this goal. Before responding, verify whether the \ + objective is satisfied. If confirmed, call `goal_complete` now. \ + If the objective has changed, call `goal_set` to update it." } ThreadGoalStatus::BudgetLimited => { "This goal has reached its token budget. Stop substantive work: summarise \