Runtime-side bundle facade. The directory rules (default path, inside-
shared/ containment, uniqueness) live in zeroclaw_config::skill_bundles
so Config::validate and the SkillsService share one implementation.
This module is a thin re-exporter plus the BundleSummary shape
Public service surface every consumer (CLI, gateway, future TUI) uses
to read and mutate skills + skill bundles. There is no second
implementation — drift is closed by construction.
One lower-precedence skill that lost its name to an earlier (higher-priority)
source during the agent’s effective-skill dedup. Recorded for the dashboard
so operators can see why an assigned bundle skill is being overridden.
A skill is a user-defined or community-built capability.
Skills live in ~/.zeroclaw/workspace/skills/<name>/SKILL.md
and can include tool definitions, prompts, and automation scripts.
A typed option a slash-tagged skill exposes on its slash command. Shaped
after the Discord Application Command Option model but channel-agnostic; a
slash-capable channel maps kind to its wire option type. Declared in
SKILL.toml under [[skill.slash_options]].
Serialized capability row for one SlashOptionKind, as published to
surfaces (the web dashboard mirrors this shape). Built by walking
SlashOptionKind::ALL; never hand-authored.
Why the audited resolver dropped a candidate skill directory/file.
Carries the human-readable detail the loader already logs, so the
dashboard can show the same reason without re-running the audit.
Install a skill from a user-configured extra registry, addressed as
registry:<name>/<skill>. The named registry must be present, enabled, and
of kind = "git"; it reuses the same git-clone registry mechanism as the
default bare-name registry and then installs the skill locally.
load_skills_for_agent plus the audit-dropped and shadowed candidates the
resolver skipped, so the dashboard can surface them without re-auditing or
re-walking
load_skills_for_agent_from_config plus the audit-dropped and shadowed
candidates the resolver skipped — the dashboard’s source for the
skipped-audit banner and shadow badges
Look up a skill in <registry_dir>/registry.json and return its trust tier
and version. Returns (SkillTier::Unknown, None) if the index file is
missing, malformed, or does not list the skill.
Parse registry:<name>/<skill> into (registry_name, skill_name).
Returns None unless it is exactly one registry name and one skill name,
both matching their install-spec identifiers.