zeroclaw-labs/zeroclaw · error · anyhow::Error
Skill file not found: {}
Error message
Skill file not found: {} What it means
Error "Skill file not found: {}" thrown in zeroclaw-labs/zeroclaw.
Source
Thrown at crates/zeroclaw-runtime/src/skills/improver.rs:74
return false;
};
let elapsed = chrono::Utc::now().signed_duration_since(ts);
elapsed.num_seconds() < self.config.cooldown_secs as i64
}
pub async fn improve_skill(
&mut self,
slug: &str,
improved_content: &str,
improvement_reason: &str,
) -> Result<Option<String>> {
validate_skill_content(improved_content)?;
let skill_dir = self.skills_dir().join(slug);
let md_path = skill_dir.join("SKILL.md");
if !md_path.exists() {
bail!("Skill file not found: {}", md_path.display());
}
// Read existing content to preserve audit trail comments.
let existing = tokio::fs::read_to_string(&md_path)
.await
.with_context(|| format!("Failed to read {}", md_path.display()))?;
// Build updated content with audit metadata embedded in YAML front-matter
// plus an HTML audit-trail comment at the file's tail.
let now = chrono::Utc::now().to_rfc3339();
let single_line_reason = improvement_reason.replace('\n', " ");
let audit_entry = format!("\n<!-- Improvement: {now} | Reason: {single_line_reason} -->\n");
let updated = append_improvement_metadata(improved_content, &now, improvement_reason);
// Preserve any existing audit trail from the original file.
let audit_trail = extract_audit_trail(&existing);
let final_content = if audit_trail.is_empty() {View on GitHub (pinned to 88bb9c8533)
Solutions
- Correct the skill file path or create the SKILL.md file.
When it happens
Trigger: Thrown at crates/zeroclaw-runtime/src/skills/improver.rs:74 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/956cba351e358f51.
Report an issue: GitHub.