SkillSet::load_dir (and load) propagate the first frontmatter/IO error and discard everything already parsed — one bad skill among twenty means zero skills load. Downstream (yologdev/yoyoserve/src/runtime.rs) can only warn "NO skills loaded" because there is no public single-skill API to isolate failures.
Proposal: either make load_dir resilient (skip + collect per-skill errors, e.g. return (SkillSet, Vec<SkillError>) or log-and-skip), or expose a public Skill::load(dir) / SkillSet::load_skill_dir(path) so callers can isolate per skill.
Context: found during the yoyo-serve review — a self-evolving update.sh can rewrite .yoyo/skills/ under a live server, so one bad sync currently degrades every conversation until someone reads stderr.
🤖 Generated with Claude Code
SkillSet::load_dir(andload) propagate the first frontmatter/IO error and discard everything already parsed — one bad skill among twenty means zero skills load. Downstream (yologdev/yoyoserve/src/runtime.rs) can only warn "NO skills loaded" because there is no public single-skill API to isolate failures.Proposal: either make
load_dirresilient (skip + collect per-skill errors, e.g. return(SkillSet, Vec<SkillError>)or log-and-skip), or expose a publicSkill::load(dir)/SkillSet::load_skill_dir(path)so callers can isolate per skill.Context: found during the yoyo-serve review — a self-evolving
update.shcan rewrite.yoyo/skills/under a live server, so one bad sync currently degrades every conversation until someone reads stderr.🤖 Generated with Claude Code