feat: ask_clarification tool + clarification system prompt + progressive skill loading fix
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

- New ask_clarification tool (crates/zclaw-runtime/src/tool/builtin/ask_clarification.rs)
  with 5 clarification types: missing_info, ambiguous_requirement, approach_choice, risk_confirmation, suggestion
- Registered as built-in tool in builtin.rs
- Added clarification system prompt instructions to messaging.rs system prompt
- Fixed messaging.rs skill injection: when SkillIndexMiddleware is active,
  only inject usage instructions (not full skill list), avoiding duplicate injection
- Fixed pre-existing unicode arrow character causing string literal parse error

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
iven
2026-04-06 13:19:10 +08:00
parent c3ab7985d2
commit 14c3c963c2
3 changed files with 161 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ mod execute_skill;
mod skill_load;
mod path_validator;
mod task;
mod ask_clarification;
pub use file_read::FileReadTool;
pub use file_write::FileWriteTool;
@@ -17,6 +18,7 @@ pub use execute_skill::ExecuteSkillTool;
pub use skill_load::SkillLoadTool;
pub use path_validator::{PathValidator, PathValidatorConfig};
pub use task::TaskTool;
pub use ask_clarification::AskClarificationTool;
use crate::tool::ToolRegistry;
@@ -28,4 +30,5 @@ pub fn register_builtin_tools(registry: &mut ToolRegistry) {
registry.register(Box::new(WebFetchTool::new()));
registry.register(Box::new(ExecuteSkillTool::new()));
registry.register(Box::new(SkillLoadTool::new()));
registry.register(Box::new(AskClarificationTool::new()));
}