SkillEx.Aggregator (SkillEx v0.1.0)

View Source

Coordinates collecting .claude/skills directories from multiple Elixir projects.

Summary

Types

Map describing a repository that exports skills.

Summary map returned after syncing repositories.

Functions

Produce a consolidated zip archive for all synced skills.

Synchronise the aggregator skills directory with the configured repositories.

Validate a single skill directory using the shared packaging script.

Types

repo_config()

@type repo_config() :: %{
  :name => String.t(),
  :path => String.t(),
  optional(:skills_dir) => String.t()
}

Map describing a repository that exports skills.

sync_summary()

@type sync_summary() :: %{
  planned: non_neg_integer(),
  copied: non_neg_integer(),
  validated: non_neg_integer(),
  errors: [term()],
  timestamp: String.t()
}

Summary map returned after syncing repositories.

Functions

package_all(skills_root, opts \\ [])

@spec package_all(
  Path.t(),
  keyword()
) :: {:ok, Path.t()} | {:error, term()}

Produce a consolidated zip archive for all synced skills.

sync_repos(repos, target_root, opts \\ [])

@spec sync_repos([repo_config()], Path.t(), keyword()) ::
  {:ok, sync_summary()} | {:error, sync_summary()}

Synchronise the aggregator skills directory with the configured repositories.

validate_skill(skill_path, opts \\ [])

@spec validate_skill(
  Path.t(),
  keyword()
) :: :ok | {:error, term()}

Validate a single skill directory using the shared packaging script.