mosaic skill management CLI — register/unregister + symlink-bridge auto-sync on install/upgrade #824
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Mosaic skills live in
~/.config/mosaic/skills/<name>/SKILL.md, but Claude Code only scans~/.claude/skills/. The bridge between them is a set of per-skill symlinks (~/.claude/skills/<name> -> ~/.config/mosaic/skills/<name>) created once at mosaic setup (marker.backup-before-mosaic-symlinks-20260506).Any skill authored after that one-time setup has no symlink, so it is invisible to Claude:
Skill()returns "Unknown skill" and/reload-skillscannot fix it (there is nothing to point to). This was verified live: the newmosaic-context-refreshskill was invisible until a symlink was hand-created — a manual workaround, not a fix.Root cause
Skill registration (the
~/.claude/skills/symlink bridge) happens only at initial setup. There is no mechanism to (a) register a newly-added skill or (b) re-sync the bridge on framework upgrade. New framework skills therefore ship invisible.Ask — a system-wide skill-management mechanism
mosaic skill register <name>— create the~/.claude/skills/<name>symlink (idempotent).mosaic skill unregister <name>— remove it (idempotent).mosaic skill list— show registered skills + flag dangling/broken symlinks.~/.config/mosaic/skills/*so a newly-added framework skill is never invisible. This auto-sync closes the bug class.Scope notes
~/.claude/skills/bridge).packages/mosaic(the~/.config/mosaictree is wiped on upgrade — the durable home is the monorepo source). Reviewed PR, author != reviewer.Hard dependency / coupling
This is a hard dependency for the durable landing of the
mosaic-context-refreshskill (a prioritized deliverable). When that skill lands inpackages/mosaic, the install/upgrade sync MUST create its symlink or it ships invisible. Sequence this bridge/CLI fix to land with or before the skill PR.Acceptance criteria
mosaic skill register/unregister/listimplemented, idempotent, with tests.~/.config/mosaic/skills/*(new skills auto-registered).listsurfaces broken/dangling symlinks.Skill()without manual symlinking.Filed per coordinator (Mos) relay of Jason's #mos 21:50Z request. Queued behind the active ≤2-lane goal cap — tracking only, not yet dispatched.