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.
npx claudepluginhub datamaker-kr/synapse-claude-marketplace --plugin synapse-plugin-helperThis skill uses the workspace's default tool permissions.
Synapse SDK provides specialized base classes for common ML workflows. Each extends `BaseAction` with workflow-specific helper methods and default settings.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides MCP server integration in Claude Code plugins via .mcp.json or plugin.json configs for stdio, SSE, HTTP types, enabling external services as tools.
Synapse SDK provides specialized base classes for common ML workflows. Each extends BaseAction with workflow-specific helper methods and default settings.
| 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 |
# 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': [...]}
All specialized actions (except Deployment) support two modes:
execute() for straightforward workflowssetup_steps() for complex multi-step workflows with rollback# Simple mode
class SimpleTrainAction(BaseTrainAction[Params]):
def execute(self) -> dict:
return {'weights_path': '/model.pt'}
# Step-based mode
class StepTrainAction(BaseTrainAction[Params]):
def setup_steps(self, registry: StepRegistry[TrainContext]) -> None:
registry.register(LoadDatasetStep())
registry.register(TrainStep())
registry.register(UploadModelStep())