diff options
| author | soryu <soryu@soryu.co> | 2026-03-04 16:47:12 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-04 16:47:12 +0000 |
| commit | ec9738a069e61529be040eff065318972b8a11e2 (patch) | |
| tree | d1b15d3b22d4980acff4fba8a12b99920035025c /makima/src/orchestration | |
| parent | 78cb861412850889424ae7d5ae5cd952a2b90295 (diff) | |
| download | soryu-ec9738a069e61529be040eff065318972b8a11e2.tar.gz soryu-ec9738a069e61529be040eff065318972b8a11e2.zip | |
feat: task slide-out panel, 3-way reconcile toggle, daemon reauth fix (#85)
* WIP: heartbeat checkpoint
* WIP: heartbeat checkpoint
* feat: soryu-co/soryu - makima: Fix daemon reauth flow for new claude setup-token output format
* feat: soryu-co/soryu - makima: Update frontend reconcile toggle to three-way switch
* feat: soryu-co/soryu - makima: Add task slide-out panel to directive page
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 |
