mirror of
https://github.com/instructkr/claw-code.git
synced 2026-04-07 00:24:50 +08:00
Make /skills install reusable skill packs
The Rust commands layer could list skills, but it had no concrete install path. This change adds /skills install <path> and matching direct CLI parsing so a skill directory or markdown file can be copied into the user skill registry with a normalized invocation name and a structured install report. Constraint: Keep the enhancement inside the existing Rust commands surface without adding dependencies Rejected: Full project-scoped registry management | larger parity surface than needed for one landed path Confidence: high Scope-risk: narrow Reversibility: clean Directive: If project-scoped skill installation is added later, keep the install target explicit so command discovery and tool resolution stay aligned Tested: cargo test -p commands Tested: cargo clippy -p commands --tests -- -D warnings Tested: cargo test -p rusty-claude-cli parses_direct_agents_and_skills_slash_commands Tested: cargo test -p rusty-claude-cli parses_login_and_logout_subcommands Tested: cargo clippy -p rusty-claude-cli --tests -- -D warnings Not-tested: End-to-end interactive REPL invocation of /skills install against a real user skill registry
This commit is contained in:
@@ -1,4 +1,11 @@
|
||||
#![allow(dead_code, unused_imports, unused_variables, clippy::unneeded_struct_pattern, clippy::unnecessary_wraps, clippy::unused_self)]
|
||||
#![allow(
|
||||
dead_code,
|
||||
unused_imports,
|
||||
unused_variables,
|
||||
clippy::unneeded_struct_pattern,
|
||||
clippy::unnecessary_wraps,
|
||||
clippy::unused_self
|
||||
)]
|
||||
mod init;
|
||||
mod input;
|
||||
mod render;
|
||||
@@ -5181,6 +5188,17 @@ mod tests {
|
||||
args: Some("help".to_string())
|
||||
}
|
||||
);
|
||||
assert_eq!(
|
||||
parse_args(&[
|
||||
"/skills".to_string(),
|
||||
"install".to_string(),
|
||||
"./fixtures/help-skill".to_string(),
|
||||
])
|
||||
.expect("/skills install should parse"),
|
||||
CliAction::Skills {
|
||||
args: Some("install ./fixtures/help-skill".to_string())
|
||||
}
|
||||
);
|
||||
let error = parse_args(&["/status".to_string()])
|
||||
.expect_err("/status should remain REPL-only when invoked directly");
|
||||
assert!(error.contains("interactive-only"));
|
||||
|
||||
Reference in New Issue
Block a user