Progressive-disclosure Skill discovery and loading (ADR 0010).
Skills are instruction packages rooted outside the ordinary Workspace file tool
authority. This module is the narrow Skills surface: list bounded metadata first,
then load a selected SKILL.md or supporting file from registered roots.
Summary
Functions
Build durable activation data for a loaded main SKILL.md.
Resolve explicit user-invoked Skills to activation data.
Discover registered Skills for a workspace, resolving duplicate names by scope.
Resolve a Skill name from the selected discovery set.
Stable hash for the bounded Skills index rendered into a Turn prompt.
Instantiate a Skill Workflow Template into a concrete Workflow spec.
Find explicit $skill-name and leading /skill-name mentions in user text.
Whether a viewed path is the Skill's main instruction file.
Render a durable activation as a Provider input fragment.
Render a compact Skills index for the Turn system prompt.
Read SKILL.md or a supporting file from a registered Skill.
Resolve a Workflow Template by skill/template, skill:template, or unique id.
Discover Workflow Templates shipped by registered Skills.
Types
Functions
Build durable activation data for a loaded main SKILL.md.
Resolve explicit user-invoked Skills to activation data.
Discover registered Skills for a workspace, resolving duplicate names by scope.
Resolve a Skill name from the selected discovery set.
Stable hash for the bounded Skills index rendered into a Turn prompt.
This is intentionally a deterministic pure helper returning String.t() directly.
It unwraps Pixir.Provider.Cache.stable_hash/1 because index rendering already
controls the input shape. Fallible public operations keep the usual
{:ok, term} | {:error, term} shape.
@spec instantiate_workflow_template(String.t(), map(), String.t(), keyword()) :: {:ok, %{template: map(), workflow: map()}} | {:error, map()}
Instantiate a Skill Workflow Template into a concrete Workflow spec.
The instantiated workflow is still executed by Pixir.Workflows; this function only
validates template arguments and substitutes placeholders in the template resource.
Find explicit $skill-name and leading /skill-name mentions in user text.
Whether a viewed path is the Skill's main instruction file.
Render a durable activation as a Provider input fragment.
Render a compact Skills index for the Turn system prompt.
@spec view(String.t(), String.t(), String.t(), keyword()) :: {:ok, %{ skill: skill(), path: String.t(), abs_path: String.t(), content: String.t() }} | {:error, map()}
Read SKILL.md or a supporting file from a registered Skill.
@spec workflow_template(String.t(), String.t(), keyword()) :: {:ok, workflow_template()} | {:error, map()}
Resolve a Workflow Template by skill/template, skill:template, or unique id.
@spec workflow_templates( String.t(), keyword() ) :: {:ok, %{templates: [workflow_template()], warnings: [map()]}}
Discover Workflow Templates shipped by registered Skills.
Templates live under workflows/*.json inside a Skill. Discovery reads only template
metadata/resources and never executes Skill scripts or records Skill Activations.