Problem
Currently, to run custom katas, you have to fork llmdojo or hardcode the imports into the core runner. There is no native way to automatically discover and load katas from outside the repository.
Proposed Solution
Use Python's native importlib.metadata.entry_points to allow llmdojo to discover and load external katas dynamically.
Downstream packages would simply register their katas in their pyproject.toml:
[project.entry-points."llmdojo.katas"]
custom_kata = "custom_dep_module.katas.custom_kata"
During initialization, llmdojo would scan the llmdojo.katas group and append any discovered modules to its existing execution list.
Benefits
- Zero dependencies: Relies entirely on the standard library.
- Backward compatible: Behaves exactly the same if no external entry points are found.
- Extensible: Enables a modular ecosystem where users can distribute custom kata suites via PyPI without bloating the core project.
- Mental model shift: Responsibility of how to use and evaluate a skill lies in the module that reflects the code, docs, prompts and the pyskill itself. The So you would config what katas to load in the harness's project.toml, the modules implement the actual katas and llmdojo executes them.
This would help to evaluate skill usage fast and make iterations on the docs /prompts faster.
I would be very interested in your thoughts on this and if it aligns to your plans of the project.
Problem
Currently, to run custom katas, you have to fork llmdojo or hardcode the imports into the core runner. There is no native way to automatically discover and load katas from outside the repository.
Proposed Solution
Use Python's native importlib.metadata.entry_points to allow llmdojo to discover and load external katas dynamically.
Downstream packages would simply register their katas in their pyproject.toml:
[project.entry-points."llmdojo.katas"]
custom_kata = "custom_dep_module.katas.custom_kata"
During initialization, llmdojo would scan the llmdojo.katas group and append any discovered modules to its existing execution list.
Benefits
This would help to evaluate skill usage fast and make iterations on the docs /prompts faster.
I would be very interested in your thoughts on this and if it aligns to your plans of the project.