neurocore.skills.registry.SkillRegistry

class neurocore.skills.registry.SkillRegistry

Registry of discovered skill classes.

Skills are keyed by their skill_meta.name. The registry enforces uniqueness — registering a second skill with the same name raises SkillError unless replace=True is passed (used for entry point precedence over directory scan).

_skills

Mapping from skill name to skill class.

register(skill_class: type[neurocore.skills.base.Skill], *, replace: bool = False) None

Register a skill class.

Parameters:
  • skill_class – A Skill subclass with a valid skill_meta.

  • replace – If True, overwrites existing registration (used for entry point precedence).

Raises:

SkillError – If skill_class is not a valid Skill subclass, or if a skill with the same name is already registered and replace is False.

get(name: str) type[neurocore.skills.base.Skill] | None

Get a registered skill class by name.

Parameters:

name – The skill’s registered name (from skill_meta.name).

Returns:

The Skill subclass, or None if not found.

get_or_raise(name: str) type[neurocore.skills.base.Skill]

Get a registered skill class by name, or raise.

Parameters:

name – The skill’s registered name.

Returns:

The Skill subclass.

Raises:

SkillError – If no skill is registered with this name.

list_skills() list[str]

List all registered skill names, sorted alphabetically.

Returns:

Sorted list of skill names.

list_skill_metas() list[neurocore.skills.base.SkillMeta]

List metadata for all registered skills.

Returns:

List of SkillMeta instances, sorted by name.

create(name: str, *, instance_name: str | None = None) neurocore.skills.base.Skill

Create an instance of a registered skill.

Parameters:
  • name – The skill’s registered name.

  • instance_name – Optional name for the instance (defaults to skill_meta.name).

Returns:

A new Skill instance.

Raises:

SkillError – If no skill is registered with this name.