fix: add spacing between listed skills

Render a blank line between entries in the /skills output so long skill
  descriptions remain easier to scan. Add coverage for multi-skill list spacing.
This commit is contained in:
reidliu41
2026-05-10 07:33:13 +08:00
committed by Hunter Bown
parent 21c3df1533
commit edb8bb0754
+33 -1
View File
@@ -72,7 +72,10 @@ pub fn list_skills(app: &mut App, arg: Option<&str>) -> CommandResult {
let mut output = format!("Available skills ({}):\n", registry.len());
output.push_str("─────────────────────────────\n");
for skill in registry.list() {
for (idx, skill) in registry.list().iter().enumerate() {
if idx > 0 {
output.push('\n');
}
let _ = writeln!(output, " /{} - {}", skill.name, skill.description);
}
let _ = write!(
@@ -558,6 +561,35 @@ mod tests {
assert!(msg.contains("/test-skill"));
}
#[test]
fn test_list_skills_separates_entries_with_blank_line() {
let tmpdir = TempDir::new().unwrap();
let _home = IsolatedHome::new(&tmpdir);
create_skill_dir(
&tmpdir,
"alpha-skill",
"---\nname: alpha-skill\ndescription: First skill\n---\nDo alpha work",
);
create_skill_dir(
&tmpdir,
"beta-skill",
"---\nname: beta-skill\ndescription: Second skill\n---\nDo beta work",
);
let mut app = create_test_app_with_tmpdir(&tmpdir);
let result = list_skills(&mut app, None);
let msg = result.message.unwrap();
let alpha = msg.find("/alpha-skill").expect("alpha skill should render");
let beta = msg.find("/beta-skill").expect("beta skill should render");
let (first, second) = if alpha < beta {
(alpha, beta)
} else {
(beta, alpha)
};
assert!(msg[first..second].contains("\n\n"), "got: {msg}");
}
#[test]
fn test_list_skills_merges_workspace_and_configured_dirs() {
let tmpdir = TempDir::new().unwrap();