Hmbown/CodeWhale · error
SKILL.md `name` must be a single path-safe segment (got '{na
Error message
SKILL.md `name` must be a single path-safe segment (got '{name}') What it means
parse_frontmatter_name extracted a name: value from SKILL.md frontmatter that is not a single path-safe segment (it contains '/', '\\', '.' or '..' or spans multiple components). The name is used to build the on-disk package directory name, so a non-segment name would create unsafe or nested paths; the frontmatter name is the input at fault.
Source
Thrown at crates/tui/src/skills/install.rs:1625
continue;
}
if let Some((key, value)) = line.split_once(':') {
let key = key.trim().to_ascii_lowercase();
let value = value.trim().to_string();
match key.as_str() {
"name" if !value.is_empty() => name = Some(value),
"description" if !value.is_empty() => has_description = true,
_ => {}
}
}
}
let name = name.ok_or(InstallError::MissingFrontmatterField("name"))?;
if !has_description {
return Err(InstallError::MissingFrontmatterField("description").into());
}
if validate_skill_name_segment(&name).is_err() {
bail!("SKILL.md `name` must be a single path-safe segment (got '{name}')");
}
Ok(name)
}
fn reject_unmarked_update(final_path: &Path, name: &str) -> std::result::Result<(), InstallError> {
if final_path.join(INSTALLED_FROM_MARKER).exists() {
Ok(())
} else {
Err(InstallError::NotInstalledHere(name.to_string()))
}
}
pub(crate) fn source_spec_string(source: &InstallSource) -> String {
match source {
InstallSource::GitHubRepo(repo) => format!("github:{repo}"),
InstallSource::DirectUrl(url) => url.clone(),
InstallSource::Registry(name) => name.clone(),
}View on GitHub (pinned to 0c42157ee5)
Solutions
- Edit the SKILL.md frontmatter name: to a single path-safe segment (letters, digits, hyphens)
- Remove any path separators or '..' from the frontmatter name
- Use the directory name or skill slug exactly, without nesting
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/tui/src/skills/install.rs:1625 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20).
Data as JSON: /api/errors/c08390995477b67e.
Report an issue: GitHub.