jeevesagent.skills.source
=========================

.. py:module:: jeevesagent.skills.source

.. autoapi-nested-parse::

   SkillSource — a directory of skills with an optional label.

   A user-facing input. Wraps a path to a skills folder; we scan it
   recursively at construction time, building one :class:`Skill` per
   discovered ``SKILL.md`` file.

   The optional ``label`` shows up in the catalog the agent sees, e.g.
   ``"  - my-skill [Project]: ..."``. Useful when multiple sources
   are mounted and you want to see at a glance which one a skill
   came from.



Classes
-------

.. autoapisummary::

   jeevesagent.skills.source.SkillSource


Module Contents
---------------

.. py:class:: SkillSource

   A folder of skills + an optional label.


   .. py:method:: coerce(item: SkillSource | str | pathlib.Path | tuple[str | pathlib.Path, str]) -> SkillSource
      :classmethod:


      Normalize one user-supplied source spec.

      Accepts:
      * ``SkillSource(...)`` — used as-is
      * ``str`` / ``Path`` — bare path, no label
      * ``(path, label)`` — path with explicit label



   .. py:method:: discover() -> list[jeevesagent.skills.skill.Skill]

      Find every SKILL.md under this source directory.

      Recurses one level (most common layout: ``skills/<name>/SKILL.md``)
      but also handles deeper nesting. Each SKILL.md becomes one
      :class:`Skill` instance with this source's label attached.



   .. py:attribute:: label
      :type:  str | None
      :value: None



   .. py:attribute:: path
      :type:  pathlib.Path


