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
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.mdfiles are found. Nested skills in subdirectories are invisible.Code reference:
crates/zeph-skills/src/registry.rsline 132–137:Proposed Implementation
Use
walkdir::WalkDir(orstd::fsrecursive walk) to traverse the skill directory tree. LoadSKILL.mdfiles at any depth. Maintain duplicate handling (first found wins) but extend it to nested paths.Parity Reference
Testing
skills/web/crawler/SKILL.md