Explains specialized Synapse action classes for specific workflows. Use when the user mentions "BaseTrainAction", "BaseExportAction", "BaseUploadAction", "BaseInferenceAction", "BaseDeploymentAction", "AddTaskDataAction", "train action", "export action", "upload action", "inference action", "deployment action", "pre-annotation", "add_task_data", "autolog", "get_dataset", "create_model", or needs workflow-specific action development help.
View on GitHubdatamaker-kr/synapse-claude-marketplace
synapse-plugin-helper
plugins/synapse-plugin-helper/skills/specialized-actions/SKILL.md
February 5, 2026
Select agents to install to:
npx add-skill https://github.com/datamaker-kr/synapse-claude-marketplace/blob/main/plugins/synapse-plugin-helper/skills/specialized-actions/SKILL.md -a claude-code --skill synapse-specialized-actionsInstallation paths:
.claude/skills/synapse-specialized-actions/# Specialized Action Classes
Synapse SDK provides specialized base classes for common ML workflows. Each extends `BaseAction` with workflow-specific helper methods and default settings.
## Available Specialized Actions
| Class | Category | Purpose |
|-------|----------|---------|
| `BaseTrainAction` | `NEURAL_NET` | Training models |
| `BaseExportAction` | `EXPORT` | Exporting data |
| `BaseUploadAction` | `UPLOAD` | Uploading files |
| `BaseInferenceAction` | `NEURAL_NET` | Running inference |
| `BaseDeploymentAction` | - | Ray Serve deployment |
| `AddTaskDataAction` | `PRE_ANNOTATION` | Pre-annotation workflows |
## Quick Comparison
```python
# Training - autolog, get_dataset, create_model
class TrainAction(BaseTrainAction[TrainParams]):
def execute(self) -> dict:
self.autolog('ultralytics') # Auto-log metrics
dataset = self.get_dataset()
# ... train ...
return self.create_model('./model.pt')
# Export - get_filtered_results
class ExportAction(BaseExportAction[ExportParams]):
def get_filtered_results(self, filters: dict) -> tuple[Any, int]:
return self.client.get_assignments(filters)
# Upload - step-based workflow required
class UploadAction(BaseUploadAction[UploadParams]):
def setup_steps(self, registry: StepRegistry[UploadContext]) -> None:
registry.register(InitStep())
registry.register(UploadFilesStep())
# Inference - download_model, load_model, infer
class InferAction(BaseInferenceAction[InferParams]):
def execute(self) -> dict:
model = self.load_model(self.params.model_id)
return {'predictions': self.infer(model, self.params.inputs)}
# Pre-annotation - convert_data_from_file, convert_data_from_inference
class PreAnnotateAction(AddTaskDataAction):
def convert_data_from_file(self, primary_url, ...) -> dict:
return {'annotations': [...]}
```
## Execution Modes
All specialized actions (except Deployment) support two modes:
1. **Simple Execute**: OverrIssues Found: