Skip to content

feat(skills): recursive nested skill discovery in subdirectories #4682

@bug-ops

Description

@bug-ops

Description

Goose v1.35.0 now walks subdirectories to find skills recursively, supporting nested skill organization (e.g., skills/category/subcategory/SKILL.md).

Current Zeph State

Zeph's skill discovery uses flat read_dir() at the managed directory level. Only top-level */SKILL.md files are found. Nested skills in subdirectories are invisible.

Code reference: crates/zeph-skills/src/registry.rs line 132–137:

for entry in dir_entries.flatten() {
    let skill_path = entry.path().join("SKILL.md");
    if !skill_path.is_file() {
        continue;
    }

Proposed Implementation

Use walkdir::WalkDir (or std::fs recursive walk) to traverse the skill directory tree. Load SKILL.md files at any depth. Maintain duplicate handling (first found wins) but extend it to nested paths.

Parity Reference

  • Goose v1.35.0: nested skill discovery
  • Potential reference: other agents organizing skills hierarchically

Testing

  • Create nested skill structure: skills/web/crawler/SKILL.md
  • Verify skill discovery loads it
  • Verify registry fingerprint includes nested skills

Metadata

Metadata

Assignees

Labels

P3Research — medium-high complexityenhancementNew feature or requestskillszeph-skills crate

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions