package sdk // Step is one unit of a Skill's reusable workflow. type Step struct { // Name is a short identifier for the step. Name string // Prompt is the instruction the model follows for this step. Prompt string // Depends lists the Names of steps that must finish before this step runs. Depends []string } // Ref is a reference a Skill may pull in for extra context or shared tooling. type Ref struct { // Name identifies the reference. Name string // Type is a free-form kind, for example "tool", "doc" or "file". Type string // Value is the reference payload or pointer. Value string // Optional reports whether the reference may be absent without failing. Optional bool } // Guardrail is a constraint a Skill applies while running. type Guardrail struct { // ID names the guardrail. ID string // Message is the rule text enforced on the workflow. Message string // Enforced reports whether a violation aborts the Skill (true) or is only a // warning (false). Enforced bool } // Skill is a reusable, higher-order workflow: an ordered set of steps paired // with prompts, references and guardrails. It is more structured than a Tool // and typically composes several steps. // // Implementations must be safe for concurrent use. type Skill interface { // Name returns the unique skill identifier. Name() string // Description explains what the Skill accomplishes; the model uses it to // select a Skill for a task. Description() string // Prompt returns the base system prompt for the Skill. Prompt() string // Steps returns the ordered workflow steps. Steps() []Step // Refs returns the references the Skill may draw on. Refs() []Ref // Guardrails returns the constraints the Skill enforces. Guardrails() []Guardrail }