Hmbown/CodeWhale · error

owned skill root {} does not exist

Error message

owned skill root {} does not exist

What it means

validate_owned_target_chain found the anchor and .codewhale directory present but the skills directory itself (<anchor>/.codewhale/skills) missing while require_existing is true. The owned skill root has not been created, so there is no package directory to update, remove, or trust. The missing skills root is the input at fault.

Source

Thrown at crates/tui/src/skills/mutation.rs:202

        return Ok(());
    }

    let codewhale_dir = anchor.join(".codewhale");
    let codewhale_exists = checked_real_directory(&codewhale_dir)?;
    if !codewhale_exists {
        if require_existing {
            bail!(
                "owned skill parent {} does not exist",
                codewhale_dir.display()
            );
        }
        return Ok(());
    }

    let skills_exists = checked_real_directory(skills_dir)?;
    if !skills_exists {
        if require_existing {
            bail!("owned skill root {} does not exist", skills_dir.display());
        }
        return Ok(());
    }

    let canonical_anchor = fs::canonicalize(anchor)
        .with_context(|| format!("failed to resolve owned anchor {}", anchor.display()))?;
    let canonical_skills = fs::canonicalize(skills_dir).with_context(|| {
        format!(
            "failed to resolve owned skill root {}",
            skills_dir.display()
        )
    })?;
    if !canonical_skills.starts_with(&canonical_anchor) {
        bail!(
            "owned skill root {} escapes anchor {}",
            skills_dir.display(),
            anchor.display()
        );

View on GitHub (pinned to 0c42157ee5)

Solutions

  1. Run a skill install/import in the target scope to create the owned skills root
  2. If the skills directory was deleted, reinstall the skill rather than mutating it
  3. Verify the scope (--project vs --global) matches where the skill was installed
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/tui/src/skills/mutation.rs:202 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Hmbown/CodeWhale@0c42157ee5 (2026-08-20). Data as JSON: /api/errors/fc60ca08d93e64a8. Report an issue: GitHub.