{"record":{"id":"956cba351e358f51","repo":"zeroclaw-labs/zeroclaw","slug":"skill-file-not-found","errorCode":null,"errorMessage":"Skill file not found: {}","messagePattern":"Skill file not found: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-runtime/src/skills/improver.rs","lineNumber":74,"sourceCode":"            return false;\n        };\n        let elapsed = chrono::Utc::now().signed_duration_since(ts);\n        elapsed.num_seconds() < self.config.cooldown_secs as i64\n    }\n\n    pub async fn improve_skill(\n        &mut self,\n        slug: &str,\n        improved_content: &str,\n        improvement_reason: &str,\n    ) -> Result<Option<String>> {\n        validate_skill_content(improved_content)?;\n\n        let skill_dir = self.skills_dir().join(slug);\n        let md_path = skill_dir.join(\"SKILL.md\");\n\n        if !md_path.exists() {\n            bail!(\"Skill file not found: {}\", md_path.display());\n        }\n\n        // Read existing content to preserve audit trail comments.\n        let existing = tokio::fs::read_to_string(&md_path)\n            .await\n            .with_context(|| format!(\"Failed to read {}\", md_path.display()))?;\n\n        // Build updated content with audit metadata embedded in YAML front-matter\n        // plus an HTML audit-trail comment at the file's tail.\n        let now = chrono::Utc::now().to_rfc3339();\n        let single_line_reason = improvement_reason.replace('\\n', \" \");\n        let audit_entry = format!(\"\\n<!-- Improvement: {now} | Reason: {single_line_reason} -->\\n\");\n\n        let updated = append_improvement_metadata(improved_content, &now, improvement_reason);\n\n        // Preserve any existing audit trail from the original file.\n        let audit_trail = extract_audit_trail(&existing);\n        let final_content = if audit_trail.is_empty() {","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-runtime/src/skills/improver.rs#L56-L92","documentation":"Error \"Skill file not found: {}\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-runtime/src/skills/improver.rs:74 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Correct the skill file path or create the SKILL.md file."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}