executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
custom-componentsImplement and register custom YiVal readers, wrappers, evaluators, generators, enhancers, selection strategies, and output parsers.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this sub-skill when the user needs to extend YiVal with a custom data reader, wrapper, evaluator, data generator, variation generator, enhancer, selection strategy, or output parser, or when a YAML custom_* section fails to register.
Useful helper:
python sub-skills/custom-components/scripts/write_component_skeleton.py --kind evaluator --output-dir ./my_yival_components writes small starter files for selected component kinds.| Component | YAML section | Base class |
|---|---|---|
| Reader | custom_reader | yival.data.base_reader.BaseReader |
| Wrapper | custom_wrappers | yival.wrappers.base_wrapper.BaseWrapper |
| Evaluator | custom_evaluators | yival.evaluators.base_evaluator.BaseEvaluator |
| Data generator | custom_data_generators | yival.data_generators.base_data_generator.BaseDataGenerator |
| Variation generator | custom_variation_generators | yival.variation_generators.base_variation_generator.BaseVariationGenerator |
| Selection strategy | custom_selection_strategies | yival.result_selectors.selection_strategy.SelectionStrategy |
| Enhancer | custom_enhancers | yival.enhancers.base_combination_enhancer.BaseCombinationEnhancer |
General runtime form:
custom_evaluators:
simple_evaluator:
class: my_components.simple_evaluator.SimpleEvaluator
config_cls: my_components.simple_evaluator.SimpleEvaluatorConfig
Then use the registry id in the normal section:
evaluators:
- name: simple_evaluator
evaluator_type: individual
metric_calculators: []
PYTHONPATH or install it in the active environment.default_config on the class if config generation/default lookup should work.custom_* YAML block with class and config_cls.dataset.reader, dataset.data_generators, variations[].generator_name, evaluators[].name, selection_strategy, or enhancer.name.YiVal's helper _get_class_from_path() splits a dotted class path into a module path and class name. For ordinary installed modules, use package.module.ClassName. For ad-hoc files, put the parent directory on PYTHONPATH and still use a dotted module path.
Avoid relying on absolute filesystem strings in reusable configs; install or package the custom module where possible.