diff options
Diffstat (limited to 'makima/src/orchestration')
| -rw-r--r-- | makima/src/orchestration/directive.rs | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/makima/src/orchestration/directive.rs b/makima/src/orchestration/directive.rs index 155cfad..1e025c8 100644 --- a/makima/src/orchestration/directive.rs +++ b/makima/src/orchestration/directive.rs @@ -194,6 +194,14 @@ impl DirectiveOrchestrator { String::new() }; + let manual_mode_appendix = if step.reconcile_mode == "manual" { + "\n\nIMPORTANT: This directive is in MANUAL reconcile mode. Before making assumptions or proceeding with implementation choices, you MUST ask clarification questions using:\n\ + \x20 makima directive ask \"<question>\" --phaseguard\n\ + Ask multiple targeted questions about requirements, edge cases, and design decisions. Wait for answers before writing code. Do not proceed until you have clear direction from the user." + } else { + "" + }; + let plan = format!( "You are executing a step in directive \"{directive_title}\".\n\n\ STEP: {step_name}\n\ @@ -203,12 +211,13 @@ impl DirectiveOrchestrator { When done, the system will automatically mark this step as completed.\n\ If you cannot complete the task, report the failure clearly.\n\n\ If you need clarification or encounter a decision that requires user input, you can ask:\n\ - \x20 makima directive ask \"Your question\" --phaseguard", + \x20 makima directive ask \"Your question\" --phaseguard{manual_mode_appendix}", directive_title = step.directive_title, step_name = step.step_name, description = step.step_description.as_deref().unwrap_or("(none)"), merge_preamble = merge_preamble, task_plan = task_plan, + manual_mode_appendix = manual_mode_appendix, ); match self @@ -1612,8 +1621,9 @@ If you need clarification from the user before finalizing the plan, you can ask Use --phaseguard for questions that block progress (the question will wait indefinitely for a response). The CLI automatically reconnects via polling every ~5 minutes to avoid HTTP timeout limits. Without --phaseguard, questions timeout based on the directive's reconcile mode: -- Reconcile ON: questions wait indefinitely (with automatic reconnecting polls every ~5 min) -- Reconcile OFF: questions timeout after 30 seconds with no response +- Auto: questions timeout after 30 seconds with no response +- Semi-Auto: questions wait indefinitely (with automatic reconnecting polls every ~5 min) +- Manual: questions wait indefinitely + tasks should ask multiple clarifying questions When to ask: - Requirements are ambiguous and multiple interpretations are valid @@ -2206,8 +2216,9 @@ Options: - `--phaseguard` - Block until response (recommended for important questions) The question will appear in the directive UI. Behavior depends on reconcile mode: -- Reconcile ON: blocks until user responds -- Reconcile OFF: times out after 30s (use for non-critical questions) +- Auto: times out after 30s (use for non-critical questions) +- Semi-Auto: blocks until user responds +- Manual: blocks until user responds (tasks are expected to ask many questions) Use this when: - The goal is ambiguous and could be interpreted multiple ways |
