Hmbown/CodeWhale · error

owned skill anchor {} does not exist

Error message

owned skill anchor {} does not exist

What it means

In validate_owned_target_chain the workspace/home anchor itself does not exist as a real directory while require_existing is true. This fires for mutations (update/remove/trust) that presuppose an already-initialized skills root: if the anchor directory is gone, the audited state is stale and the mutation cannot proceed safely. The missing anchor path is the input at fault; with require_existing=false this same condition is tolerated.

Source

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

/// Validate the complete owned-root chain without following a symlink in the
/// workspace/home anchor, `.codewhale`, or `skills` component.
fn validate_owned_target_chain(
    anchor: &Path,
    skills_dir: &Path,
    require_existing: bool,
) -> Result<()> {
    let expected = anchor.join(".codewhale").join("skills");
    if skills_dir != expected {
        bail!(
            "refusing to mutate non-canonical CodeWhale skills root {}",
            skills_dir.display()
        );
    }

    let anchor_exists = checked_real_directory(anchor)?;
    if !anchor_exists {
        if require_existing {
            bail!("owned skill anchor {} does not exist", anchor.display());
        }
        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 {

View on GitHub (pinned to 0c42157ee5)

Solutions

  1. Recreate the workspace or home directory expected as the anchor
  2. Re-run a skills scan/audit so descriptors reflect the missing root
  3. Install the skill first if the owned roots were never initialized
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/tui/src/skills/mutation.rs:182 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/443430687154bdbc. Report an issue: GitHub.