Discovers and holds the set of skills available to an agent session.
Skills live one-per-directory, each containing a SKILL.md:
skills/
write_tests/SKILL.md
review_pr/SKILL.mdThis mirrors Claude Code's skill layout so existing skill directories can be pointed at directly.
Summary
Functions
Recursively finds every SKILL.md under dir and loads it.
Loads skills from several directories at once, deduped by name (first match wins).
Functions
@spec find(String.t(), [CodingAgent.Skill.t()]) :: CodingAgent.Skill.t() | nil
@spec load_dir(String.t()) :: [CodingAgent.Skill.t()]
Recursively finds every SKILL.md under dir and loads it.
Invalid skills are skipped (with a logger warning) rather than failing the whole load, since one malformed skill shouldn't take down a session.
@spec load_dirs([String.t()]) :: [CodingAgent.Skill.t()]
Loads skills from several directories at once, deduped by name (first match wins).