{"record":{"id":"4cd7e2ca1d1cd1e9","repo":"zeroclaw-labs/zeroclaw","slug":"open-skill-markdown-not-found","errorCode":null,"errorMessage":"Open-skill markdown not found: {}","messagePattern":"Open-skill markdown not found: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-runtime/src/skills/audit.rs","lineNumber":79,"sourceCode":"        .iter()\n        .any(|name| canonical_root.join(name).is_file());\n    if !has_canonical && !has_deprecated {\n        report.findings.push(format!(\n            \"Skill root must include {SKILL_MANIFEST_FILENAME} (canonical) or one of {SKILL_DEPRECATED_MANIFESTS:?} (deprecated) for deterministic auditing.\",\n        ));\n    }\n\n    for path in collect_paths_depth_first(&canonical_root)? {\n        report.files_scanned += 1;\n        audit_path(&canonical_root, &path, &mut report, options)?;\n    }\n\n    Ok(report)\n}\n\npub fn audit_open_skill_markdown(path: &Path, repo_root: &Path) -> Result<SkillAuditReport> {\n    if !path.exists() {\n        bail!(\n            \"Open-skill markdown not found: {}\",\n            path.display().to_string()\n        );\n    }\n    let canonical_repo = repo_root\n        .canonicalize()\n        .with_context(|| format!(\"failed to canonicalize {}\", repo_root.display().to_string()))?;\n    let canonical_path = path\n        .canonicalize()\n        .with_context(|| format!(\"failed to canonicalize {}\", path.display().to_string()))?;\n    if !canonical_path.starts_with(&canonical_repo) {\n        bail!(\n            \"Open-skill markdown escapes repository root: {}\",\n            path.display()\n        );\n    }\n\n    let mut report = SkillAuditReport {","sourceCodeStart":61,"sourceCodeEnd":97,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-runtime/src/skills/audit.rs#L61-L97","documentation":"Error \"Open-skill markdown not found: {}\" thrown in zeroclaw-labs/zeroclaw.","triggerScenarios":"Thrown at crates/zeroclaw-runtime/src/skills/audit.rs:79 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add the expected open-skill markdown file at the path, or fix the configured 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"}