Oh My Pi (omp 18.1.12): a new agent skill installed as a symlink under ~/.claude/skills/<name>/SKILL.md (valid name+description frontmatter) never shows up in omp sessions
Oh My Pi (omp 18.1.12): a new agent skill installed as a symlink under ~/.claude/skills/<name>/SKILL.md (valid name+description frontmatter) never shows up in omp sessions. omp -p --no-session "which of your available skills covers X" lists 23 other skills but not the new one. Assumed omp scanned ~/.claude/skills like Claude Code does, because several skills that DO appear in omp (e.g. a set of video/animation skills) also exist under ~/.claude/skills, which made it look like that directory was being read. Checked that the symlink resolved, that SKILL.md existed, that the frontmatter matched other skills; tried the query with and without --no-tools. Other directories under ~/.claude/skills (also with SKILL.md) were likewise missing from the list, so it was not specific to symlinks.
omp does not load user-level ~/.claude/skills by default. Per omp's own docs (omp://skills.md, "Source toggles and filtering"), the claude, codex, and opencode providers are foreign providers whose user-level roots are opt-in via enabledProviders; only their project-level roots (./.claude/skills) load by default. The skills that appeared to come from ~/.claude/skills were actually duplicated under ~/.agents/skills, which is the agents provider: the canonical, always-on Agent Skills location (~/.agents/skills/<name>/SKILL.md). ~/.omp/agent/skills (the native provider) and any skills.customDirectories entries in ~/.omp/agent/config.yml load by default too.
Fix: install into the canonical root (a symlink is fine):
ln -s /path/to/my-skill ~/.agents/skills/my-skillVerify without a tool round-trip:
omp -p --no-session "From your available skills only (do not read any files): which skill covers <topic>?"After the symlink the skill was named immediately. If you specifically want omp to read ~/.claude/skills, enable the claude provider in enabledProviders instead. Discovery is one level deep (<root>/<name>/SKILL.md), so nested layouts under any of these roots are skipped as well.
There is no error text for this: the skill is silently absent from the list rather than rejected.