Skill: auto-port custom columns to plugin packages
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 48/100
Línea de trabajo
Comienza revisando docs/plugins/example.md y tests_e2e/.../plugins/column_generator/ como plantillas de estructura y, después, inspecciona la estructura de .agents/skills/. Define la skill /port-to-plugin para una columna personalizada, cubriendo ambas estrategias de generación, el aplanado de parámetros y la reescritura de models. La tarea está terminada cuando el paquete generado se puede instalar, se descubre su punto de entrada data_designer.plugins y un scaffold de pruebas cubre la transformación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Custom columns (@custom_column_generator) are convenient for local/notebook use but hit a hard wall when users need serialization - the generator function serializes to just its __name__, so configs can't round-trip through YAML/JSON. The recommended path is to rewrite as a plugin, but the transformation is mechanical and the boilerplate is easy to get wrong.
Proposal
Add a /port-to-plugin Claude Code skill (.agents/skills/) that takes a Python file containing one or more @custom_column_generator functions and scaffolds a complete, installable plugin package.
Transformation mapping
| Custom column | Plugin |
|---|---|
@custom_column_generator(required_columns=..., side_effect_columns=...) |
required_columns / side_effect_columns properties on config class |
generator_params: BaseModel fields |
Promoted to config class fields |
model_aliases decorator arg |
Config field + resource_provider.model_registry access in impl |
Function body with row param |
ColumnGeneratorCellByCell.generate() |
Function body with df param |
ColumnGeneratorFullColumn.generate() |
GenerationStrategy choice |
Base class selection |
Output structure
Given /port-to-plugin path/to/my_workflow.py:
data-designer-<name>-plugin/
src/<package_name>/
__init__.py
config.py # SingleColumnConfig subclass with Literal discriminator
impl.py # ColumnGenerator{CellByCell,FullColumn} subclass
plugin.py # Plugin() registration object
pyproject.toml # Entry point under data_designer.plugins
Scope
- Single custom column per invocation (v1), multi-column bundling as a follow-up
- Rewrites
modelsparameter access toself.resource_provider.model_registry - Flattens
generator_paramsinto config fields - Uses
docs/plugins/example.mdandtests_e2e/.../plugins/column_generator/as scaffolding templates
Why a skill and not a CLI command
The transformation requires understanding intent (naming the discriminator, choosing config field types, handling edge cases in function bodies). An LLM-backed skill can make judgment calls that a rigid code generator can't, while the plugin structure is constrained enough that the output is verifiable.
Acceptance criteria
- Skill file at
.agents/skills/port-to-plugin/ - Handles cell-by-cell and full-column strategies
- Handles
generator_paramsflattening - Handles
modelsparameter rewriting - Generated plugin installs and passes
data_designer.pluginsentry point discovery - Includes a test scaffold
- Lenguaje dominante
- Python
- Estrellas
- 2.3k
- Forks
- 227
- Merge medio
- 21 h 56 min
- PR fusionados (30 d)
- 64
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de NVIDIA-NeMo/DataDesigner
-
docs: required_columns description is incomplete for LLM and multimodal columnsPosiblemente ocupada @rksharma-owg la tomó hace 5 días. Abiertobug triaged
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
NVIDIA-NeMo/DataDesigner#1002 · 4 comentarios ·
Los mantenedores suelen responder en 1 día
-
enforce \from future import annotations` via ruff FA102 rule`Posiblemente ocupada @chethanuk la tomó hace 40 días. Abiertotask
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
NVIDIA-NeMo/DataDesigner#760 ·
Los mantenedores suelen responder en 1 día
-
task
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
NVIDIA-NeMo/DataDesigner#1056 ·
Los mantenedores suelen responder en 1 día
-
dependencies task
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
NVIDIA-NeMo/DataDesigner#1054 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 45/100
NVIDIA-NeMo/DataDesigner#1048 ·
Los mantenedores suelen responder en 1 día
Todos los issues de NVIDIA-NeMo/DataDesigner
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
zach-blumenfeld/aip#13 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
nathanmarlor/foxess_modbus#1287 ·
Los mantenedores suelen responder en 4 días
-
bug good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
OpenLakeForge/openlakeforge#498 ·
Los mantenedores suelen responder en 1 día
-
good first issue hacktoberfest help wanted python
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 1 día
-
Exact onnxruntime==1.27.0 core pin makes Pipecat-based apps uninstallable from the dashboardAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
pollen-robotics/reachy_mini#1493 ·
Los mantenedores suelen responder en 1 día