neurocore.skills.loader¶
Skill discovery — directory scan + entry points.
Two discovery mechanisms, merged into a unified SkillRegistry:
Directory scan — walks a skills/ directory, imports .py files, finds Skill subclasses.
Entry points — scans the neurocore.skills group from installed packages (pyproject.toml [project.entry-points.”neurocore.skills”]).
Entry points take precedence — a pip-installed skill wins over a local copy with the same name.
- Usage:
from neurocore.skills.loader import discover_skills from neurocore.config import load_config
config = load_config() registry = discover_skills(config) print(registry.list_skills())
Attributes¶
Functions¶
|
Discover skills by scanning a directory for .py files. |
Discover skills from installed package entry points. |
|
|
Discover all skills — directory scan + entry points. |
Module Contents¶
- neurocore.skills.loader.ENTRY_POINT_GROUP = 'neurocore.skills'¶
- neurocore.skills.loader.discover_directory(skills_dir: pathlib.Path, *, registry: neurocore.skills.registry.SkillRegistry | None = None) neurocore.skills.registry.SkillRegistry[source]¶
Discover skills by scanning a directory for .py files.
Walks the directory (non-recursive by default), imports each .py file as a module, and finds all Skill subclasses with valid skill_meta.
- Parameters:
skills_dir – Path to the skills directory.
registry – Existing registry to add to. Creates a new one if None.
- Returns:
SkillRegistry with discovered skills.
- Raises:
SkillError – If a skill file cannot be imported (logged, not fatal).
- neurocore.skills.loader.discover_entry_points(*, registry: neurocore.skills.registry.SkillRegistry | None = None) neurocore.skills.registry.SkillRegistry[source]¶
Discover skills from installed package entry points.
Scans the neurocore.skills entry point group. Each entry point should point to a Skill subclass.
- Entry point format in pyproject.toml:
[project.entry-points.”neurocore.skills”] neuroweave = “neurocore_skill_neuroweave:NeuroWeaveSkill”
- Parameters:
registry – Existing registry to add to. Creates a new one if None.
- Returns:
SkillRegistry with discovered skills.
- neurocore.skills.loader.discover_skills(config: neurocore.config.schema.NeuroCoreConfig, *, registry: neurocore.skills.registry.SkillRegistry | None = None) neurocore.skills.registry.SkillRegistry[source]¶
Discover all skills — directory scan + entry points.
Discovery order: 1. Directory scan (skills/ folder) — baseline 2. Entry points (pip-installed packages) — override duplicates
This means entry-point skills take precedence over local skills with the same name.
- Parameters:
config – NeuroCoreConfig with skills_dir path.
registry – Existing registry to add to. Creates a new one if None.
- Returns:
SkillRegistry with all discovered skills.