← ClaudeAtlas

synapse-step-workflowlisted

Explains step-based workflow system for Synapse plugin actions. Use when the user mentions "BaseStep", "StepRegistry", "Orchestrator", "StepResult", "BaseStepContext", "step-based workflow", "workflow steps", "rollback", "progress_weight", or needs help with multi-step action development.
datamaker-kr/synapse-claude-marketplace · ★ 1 · AI & Automation · score 55
Install: claude install-skill datamaker-kr/synapse-claude-marketplace
# Step-based Workflow System Synapse SDK provides a step-based workflow system for complex actions that need: - Multi-phase execution with progress tracking - Automatic rollback on failure - State sharing between steps - Conditional step execution ## Core Components | Component | Purpose | |-----------|---------| | `BaseStep` | Abstract step definition | | `StepResult` | Step execution result | | `StepRegistry` | Ordered step registration | | `Orchestrator` | Step execution with rollback | | `BaseStepContext` | State sharing between steps | ## Quick Start ```python from dataclasses import dataclass, field from synapse_sdk.plugins.steps import ( BaseStep, StepResult, StepRegistry, Orchestrator, BaseStepContext, ) from synapse_sdk.plugins.context import RuntimeContext # 1. Define context for state sharing @dataclass class ProcessContext(BaseStepContext): data: list = field(default_factory=list) processed: int = 0 # 2. Define steps class LoadStep(BaseStep[ProcessContext]): @property def name(self) -> str: return 'load' @property def progress_weight(self) -> float: return 0.3 def execute(self, ctx: ProcessContext) -> StepResult: ctx.data = load_data() return StepResult(success=True, data={'count': len(ctx.data)}) class ProcessStep(BaseStep[ProcessContext]): @property def name(self) -> str: return 'process' @property def progress_weight(self) -> float: return