zeroclaw-labs/zeroclaw · error · anyhow::Error
Open-skill markdown escapes repository root: {}
Error message
Open-skill markdown escapes repository root: {} What it means
Error "Open-skill markdown escapes repository root: {}" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-runtime/src/skills/audit.rs:91
Ok(report)
}
pub fn audit_open_skill_markdown(path: &Path, repo_root: &Path) -> Result<SkillAuditReport> {
if !path.exists() {
bail!(
"Open-skill markdown not found: {}",
path.display().to_string()
);
}
let canonical_repo = repo_root
.canonicalize()
.with_context(|| format!("failed to canonicalize {}", repo_root.display().to_string()))?;
let canonical_path = path
.canonicalize()
.with_context(|| format!("failed to canonicalize {}", path.display().to_string()))?;
if !canonical_path.starts_with(&canonical_repo) {
bail!(
"Open-skill markdown escapes repository root: {}",
path.display()
);
}
let mut report = SkillAuditReport {
files_scanned: 1,
findings: Vec::new(),
..Default::default()
};
audit_markdown_file(&canonical_repo, &canonical_path, &mut report)?;
Ok(report)
}
fn collect_paths_depth_first(root: &Path) -> Result<Vec<PathBuf>> {
let mut stack = vec![root.to_path_buf()];
let mut out = Vec::new();
View on GitHub (pinned to 88bb9c8533)
Solutions
- Remove path traversal from the skill path so it stays inside the repository root.
When it happens
Trigger: Thrown at crates/zeroclaw-runtime/src/skills/audit.rs:91 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zeroclaw-labs/zeroclaw@88bb9c8533 (2026-08-23).
Data as JSON: /api/errors/ced20d169f61d267.
Report an issue: GitHub.