Explains result schema classes for Synapse plugin actions. Use when the user mentions "TrainResult", "InferenceResult", "ExportResult", "UploadResult", "WeightsResult", "MetricsResult", "result_model", "result schema", or needs help with action return type validation.
npx claudepluginhub datamaker-kr/synapse-claude-marketplace --plugin synapse-plugin-helperThis skill uses the workspace's default tool permissions.
Synapse SDK provides standardized result schema classes for common action outputs. These provide type-safe, validated return types for actions.
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 standardized result schema classes for common action outputs. These provide type-safe, validated return types for actions.
from synapse_sdk.plugins.schemas import (
TrainResult,
InferenceResult,
ExportResult,
UploadResult,
WeightsResult,
MetricsResult,
)
| Schema | Purpose |
|---|---|
TrainResult | Training output with weights and metrics |
InferenceResult | Inference predictions |
ExportResult | Data export output |
UploadResult | File upload results |
WeightsResult | Model weights only |
MetricsResult | Evaluation metrics only |
from synapse_sdk.plugins.actions.train import BaseTrainAction
from synapse_sdk.plugins.schemas import TrainResult
class MyTrainAction(BaseTrainAction[TrainParams]):
result_model = TrainResult # Enable result validation
def execute(self) -> TrainResult:
# ... training ...
return TrainResult(
weights_path='/models/best.pt',
final_epoch=100,
train_metrics={'loss': 0.05},
val_metrics={'mAP50': 0.85},
)
from synapse_sdk.plugins.decorators import action
from synapse_sdk.plugins.schemas import InferenceResult
@action(name='infer', result=InferenceResult)
def infer(params: InferParams, ctx: RuntimeContext) -> InferenceResult:
return InferenceResult(
predictions=[{'class': 'dog', 'confidence': 0.95}],
processed_count=100,
)
class TrainResult(BaseModel):
weights_path: str # Path to trained model
final_epoch: int # Last completed epoch
best_epoch: int | None # Best epoch by val metric
train_metrics: dict = {} # Final training metrics
val_metrics: dict = {} # Final validation metrics
class InferenceResult(BaseModel):
predictions: list[dict] = [] # Prediction results
processed_count: int = 0 # Items processed
output_path: str | None # Output file path
class ExportResult(BaseModel):
output_path: str # Export path
exported_count: int # Items exported
format: str # Export format
file_size_bytes: int | None # File size
class UploadResult(BaseModel):
uploaded_count: int # Items uploaded
remote_path: str | None # Remote URL/path
status: str = 'completed' # Upload status
class WeightsResult(BaseModel):
weights_path: str # Best/final weights path
checkpoint_paths: list = [] # Intermediate checkpoints
format: str = 'pt' # Weights format
class MetricsResult(BaseModel):
metrics: dict[str, float] # Metric values
category: str = 'default' # Metrics category