{"record":{"id":"864c41804409b4e1","repo":"Hmbown/CodeWhale","slug":"skill-name-not-found-in-codewhale-owned-projec","errorCode":null,"errorMessage":"skill '{name}' not found in CodeWhale-owned project/global roots","messagePattern":"skill '(.+?)' not found in CodeWhale-owned project/global roots","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/tui/src/skills/mutation.rs","lineNumber":498,"sourceCode":"        [] => {\n            // If the name only exists externally, tell the user to import.\n            let compatible = scan_with_configured(\n                ctx.workspace,\n                ctx.home,\n                ctx.configured_skills_dir,\n                SkillAuditMode::Compatible,\n                None,\n            );\n            if compatible.skills.iter().any(|s| {\n                s.id.canonical_name == canonical\n                    && s.source_kind == SkillSourceKind::CompatibleExternal\n            }) {\n                bail!(\n                    \"skill '{name}' exists only in a compatible external root; \\\n                     import it with /skills (refusing to write external harness directories)\"\n                );\n            }\n            bail!(\"skill '{name}' not found in CodeWhale-owned project/global roots\");\n        }\n        [only] => {\n            let DigestState::Known(digest) = &only.digest else {\n                bail!(\"skill '{name}' has unknown package digest; refusing mutation\");\n            };\n            Ok(ResolvedOwnedSkill {\n                id: only.id.clone(),\n                digest: digest.clone(),\n            })\n        }\n        _ => bail!(\n            \"skill '{name}' exists in both project and global CodeWhale roots; \\\n             specify --project or --global\"\n        ),\n    }\n}\n\nfn find_audited_skill(","sourceCodeStart":480,"sourceCodeEnd":516,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/0c42157ee52f9d55af2b506d71b46249910f77d3/crates/tui/src/skills/mutation.rs#L480-L516","documentation":"resolve_owned_skill_by_name matched no skill with the given (canonicalized) name in either CodeWhale-owned root, and the Compatible-mode external scan also found nothing. The name is simply unknown to any managed root — a user-facing lookup miss. The unrecognized skill name is the input at fault.","triggerScenarios":"Thrown at crates/tui/src/skills/mutation.rs:498 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the skill name spelling or use the canonical name from /skills listing","Install the skill first (install/import) before remove/update/trust","Run a skills scan to confirm what is currently available in project/global roots"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"0c42157ee52f9d55af2b506d71b46249910f77d3","analyzedAt":"2026-08-20T21:50:45.477Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}