{"record":{"id":"34ad664494d8ec44","repo":"zeroclaw-labs/zeroclaw","slug":"registry-registry-name-uses-unsupported-kind","errorCode":null,"errorMessage":"registry '{registry_name}' uses unsupported kind '{}'; only 'git' is supported","messagePattern":"registry '(.+?)' uses unsupported kind '(.+?)'; only 'git' is supported","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"crates/zeroclaw-runtime/src/skills/mod.rs","lineNumber":2624,"sourceCode":"                .filter(|r| r.enabled)\n                .map(|r| r.name.as_str())\n                .collect();\n            if configured.is_empty() {\n                format!(\n                    \"registry '{registry_name}' is not configured or is disabled. \\\n                     Add it under [[skills.extra_registries]] in your config.\"\n                )\n            } else {\n                format!(\n                    \"registry '{registry_name}' is not configured or is disabled. \\\n                     Configured registries: {}\",\n                    configured.join(\", \")\n                )\n            }\n        })?;\n\n    if registry.kind != zeroclaw_config::schema::ExternalRegistryKind::Git {\n        anyhow::bail!(\n            \"registry '{registry_name}' uses unsupported kind '{}'; only 'git' is supported\",\n            registry.kind\n        );\n    }\n\n    let registry_dir = ensure_extra_registry(workspace_dir, &registry_name, &registry.url)?;\n    let skill_dir = registry_dir.join(\"skills\").join(&skill_name);\n\n    if !skill_dir.is_dir() {\n        let available = list_registry_skill_names(&registry_dir);\n        if available.is_empty() {\n            anyhow::bail!(\n                \"skill '{skill_name}' not found in registry '{registry_name}' and no skills are available\"\n            );\n        }\n        anyhow::bail!(\n            \"skill '{skill_name}' not found in registry '{registry_name}'.\\nAvailable skills: {}\",\n            available.join(\", \")","sourceCodeStart":2606,"sourceCodeEnd":2642,"githubUrl":"https://github.com/zeroclaw-labs/zeroclaw/blob/88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc/crates/zeroclaw-runtime/src/skills/mod.rs#L2606-L2642","documentation":"Extra/named registries are configured with a `kind` field, and only ExternalRegistryKind::Git is implemented. When the configured registry resolves to any other kind (e.g. a future 'http' kind or a typo like 'gits'), the lookup bails before cloning.","triggerScenarios":"Config contains an external registry entry whose kind is not `git` — e.g. `[[skills.registries]] name = \"extra\" kind = \"http\" url = \"...\"` — and you then install a skill from that registry (`skills install registry:extra/my-skill`).","commonSituations":"Copy-pasted config from docs describing unsupported future kinds; hand-edited registry config with a typo in kind; registry kind vocabulary expanded in a newer version than the running binary supports; config written for a different tool.","solutions":["Set the registry's kind to `git` (or remove the kind key if it defaults to git) in your config.","Remove the unsupported registry entry entirely if you do not need it.","Check the config schema/docs for the exact accepted kind values on your zeroclaw version.","If you genuinely need a non-git registry, upgrade zeroclaw — older binaries only implement git."],"exampleFix":"# before\n[[skills.registries]]\nname = \"extra\"\nkind = \"http\"\nurl = \"https://example.com/skills\"\n\n# after\n[[skills.registries]]\nname = \"extra\"\nkind = \"git\"\nurl = \"https://github.com/org/skills\"","handlingStrategy":"validation","validationCode":"fn registry_kind_supported(kind: &str) -> bool {\n    kind.eq_ignore_ascii_case(\"git\")\n}\n// validate config before any registry install:\nfor r in &config.skills.registries {\n    assert!(registry_kind_supported(&r.kind), \"registry {} kind must be git\", r.name);\n}","typeGuard":null,"tryCatchPattern":"match install_from_registry(name, skill) {\n    Err(e) if e.to_string().contains(\"only 'git' is supported\") => {\n        eprintln!(\"fix config: registry {name} kind must be 'git'\");\n    }\n    rest => rest?,\n}","preventionTips":["Schema-validate the whole config at startup; reject unknown registry kind values early.","Only copy registry config from docs matching your zeroclaw version.","Add a config lint (`zeroclaw config check` equivalent) to CI for checked-in configs."],"tags":["config","registry","skills","unsupported-value","git"],"backgroundTag":"unsupported-config-value","analyzedSha":"88bb9c8533fc57ed7a03e36ca7c9ed2bf8336dcc","analyzedAt":"2026-08-23T01:07:41.857Z","schemaVersion":2},"datasetVersion":"2026-08-23T08:06:27.607Z"}