{"record":{"id":"fe2c0f34142c8769","repo":"zeroclaw-labs/zeroclaw","slug":"skill-source-does-not-exist","errorCode":null,"errorMessage":"Skill source does not exist: {}","messagePattern":"Skill source does not exist: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-runtime/src/skills/audit.rs","lineNumber":42,"sourceCode":"    pub fn is_clean(&self) -> bool {\n        self.findings.is_empty()\n    }\n\n    pub fn summary(&self) -> String {\n        self.findings.join(\"; \")\n    }\n}\n\npub fn audit_skill_directory(skill_dir: &Path) -> Result<SkillAuditReport> {\n    audit_skill_directory_with_options(skill_dir, SkillAuditOptions::default())\n}\n\npub fn audit_skill_directory_with_options(\n    skill_dir: &Path,\n    options: SkillAuditOptions,\n) -> Result<SkillAuditReport> {\n    if !skill_dir.exists() {\n        bail!(\n            \"Skill source does not exist: {}\",\n            skill_dir.display().to_string()\n        );\n    }\n    if !skill_dir.is_dir() {\n        bail!(\n            \"Skill source must be a directory: {}\",\n            skill_dir.display().to_string()\n        );\n    }\n\n    let canonical_root = skill_dir\n        .canonicalize()\n        .with_context(|| format!(\"failed to canonicalize {}\", skill_dir.display().to_string()))?;\n    let mut report = SkillAuditReport::default();\n\n    let has_canonical = canonical_root.join(SKILL_MANIFEST_FILENAME).is_file();\n    let has_deprecated = SKILL_DEPRECATED_MANIFESTS","sourceCodeStart":24,"sourceCodeEnd":60,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-runtime/src/skills/audit.rs#L24-L60","documentation":"Error \"Skill source does not exist: {}\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-runtime/src/skills/audit.rs:42 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Create the skill source at the given path or correct the path."],"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"}