Conjure.Skill (Conjure v0.1.1-alpha)

View Source

Represents a loaded Agent Skill.

A skill contains metadata parsed from SKILL.md frontmatter per the Agent Skills specification (https://agentskills.io/specification), along with information about available resources.

Fields

  • :name - Unique identifier for the skill (lowercase, alphanumeric with hyphens)
  • :description - Comprehensive description including usage triggers
  • :path - Absolute path to the skill directory
  • :license - License identifier (e.g., "MIT", "Apache-2.0")
  • :compatibility - Environment requirements (e.g., "python3, poppler-utils")
  • :allowed_tools - Pre-approved tools for this skill (experimental)
  • :metadata - Additional frontmatter properties
  • :body - Full SKILL.md body content (nil until loaded)
  • :body_loaded - Whether the body has been loaded
  • :resources - Map of available resource files by category

Progressive Disclosure

Skills are loaded with metadata only by default. The body is loaded on-demand via Conjure.load_body/1 or when Claude reads the SKILL.md file using the view tool.

Summary

Functions

Checks if a skill has a specific resource file.

Returns the path to a resource file within the skill.

Returns the path to the SKILL.md file for this skill.

Types

resources()

@type resources() :: %{
  scripts: [Path.t()],
  references: [Path.t()],
  assets: [Path.t()],
  other: [Path.t()]
}

t()

@type t() :: %Conjure.Skill{
  allowed_tools: String.t() | nil,
  body: String.t() | nil,
  body_loaded: boolean(),
  compatibility: String.t() | nil,
  description: String.t(),
  license: String.t() | nil,
  metadata: map(),
  name: String.t(),
  path: Path.t(),
  resources: resources()
}

Functions

has_resource?(skill, relative_path)

@spec has_resource?(t(), Path.t()) :: boolean()

Checks if a skill has a specific resource file.

resource_path(skill, relative_path)

@spec resource_path(t(), Path.t()) :: Path.t()

Returns the path to a resource file within the skill.

skill_md_path(skill)

@spec skill_md_path(t()) :: Path.t()

Returns the path to the SKILL.md file for this skill.