Skip to content

[Bug]: Global skills in domain subdirectories are not discovered #621

@nguyenngothuong

Description

@nguyenngothuong

Bug Description

Global skills organised with a domain/category subfolder are silently ignored by OpenWork.

OpenWork expects skills at:

~/.config/opencode/skills/<skill-name>/SKILL.md

But the OpenCode CLI convention (and many community setups) uses a domain-grouped layout:

~/.config/opencode/skills/<domain>/<skill-name>/SKILL.md

Steps to Reproduce

  1. Organise global skills in domain subfolders:
    ~/.config/opencode/skills/
    ├── automation/
    │   └── my-skill/SKILL.md
    └── web-development/
        └── my-other-skill/SKILL.md
    
  2. Open any workspace in OpenWork
  3. Check the Skills panel

Expected: Both skills appear in the list
Actual: Skills panel is empty — skills are not discovered

Root Cause

Both gather_skills() in packages/desktop/src-tauri/src/commands/skills.rs and listSkillsInDir() in packages/server/src/skills.ts only scan one level deep (<root>/<name>/SKILL.md) and skip directories that don't directly contain SKILL.md.

Fix

When a top-level entry inside a skill root does not contain SKILL.md, treat it as a domain/category folder and scan its subdirectories for <name>/SKILL.md.
This is fully backwards-compatible — the flat layout still works as before.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions