# SkillKit v0.1.0 - Table of Contents

An Elixir framework for building LLM agent systems with skills, tools, and subagent delegation.

## Pages

- [SkillKit](readme.md)

- Guides
  - [Examples](examples.md)
  - [Architecture Overview](architecture.md)
  - [Skill File Format](skill-format.md)
  - [Adding an LLM Provider](llm-providers.md)
  - [Skill Providers](providers.md)
  - [Hooks](hooks-and-execution.md)
  - [Authorization](authorization.md)
  - [Telemetry](telemetry.md)
  - [Conversations](conversations.md)
  - [The Ralph Loop](ralph-loop.md)

## Modules

- [Anthropic.Test](Anthropic.Test.md): Anthropic-specific test helpers.
- [SkillKit.Agent.SkillActivation](SkillKit.Agent.SkillActivation.md): Runs an activated skill as a forked sub-conversation in the parent
agent's process.
- [SkillKit.Agent.StreamAccumulator](SkillKit.Agent.StreamAccumulator.md): Shared helpers for consuming an LLM event stream into an
`%AssistantMessage{}`.
- [SkillKit.Agent.Supervisor](SkillKit.Agent.Supervisor.md): Top-level supervisor for an agent.
- [SkillKit.Agent.ToolDispatch](SkillKit.Agent.ToolDispatch.md): Tool execution dispatch. Classifies, executes, and returns results for
tool calls from the LLM. Handles plain tools, skill activation, and
subagent spawning.
- [SkillKit.Conversation.Store.Memory](SkillKit.Conversation.Store.Memory.md): In-memory conversation store backed by an `Agent` process.
- [SkillKit.CredentialProvider](SkillKit.CredentialProvider.md): Behaviour for resolving credentials on behalf of tools.
- [SkillKit.Event.InputRequested](SkillKit.Event.InputRequested.md): A tool has suspended execution and is requesting input from the caller.
- [SkillKit.Hooks](SkillKit.Hooks.md): Dispatches lifecycle hooks at agent boundaries.
- [SkillKit.Hooks.Command](SkillKit.Hooks.Command.md): Hook handler that shells out to a command.
- [SkillKit.Hooks.Handler](SkillKit.Hooks.Handler.md): Behaviour for hook handler implementations.
- [SkillKit.Hooks.Http](SkillKit.Hooks.Http.md): Hook handler that POSTs hook context as JSON to a URL.
- [SkillKit.Kit.GitHub](SkillKit.Kit.GitHub.md): Provider that imports skills from GitHub repositories at runtime.
- [SkillKit.Kit.GitHub.Cache](SkillKit.Kit.GitHub.Cache.md): Manages the local disk cache for downloaded GitHub repositories.
- [SkillKit.Kit.GitHub.Client](SkillKit.Kit.GitHub.Client.md): HTTP client for downloading tarballs from GitHub's API.

- [SkillKit.Kit.GitHub.Ref](SkillKit.Kit.GitHub.Ref.md): Parses GitHub repository references in the format `owner/repo[/path][@ref]`.

- [SkillKit.LLM.Metadata](SkillKit.LLM.Metadata.md): Extracts LLM backend configuration from skill metadata.
- [SkillKit.Response.Empty](SkillKit.Response.Empty.md): Describes an LLM response with no content and no tool calls.
- [SkillKit.Response.Error](SkillKit.Response.Error.md): Describes an LLM error response.

- [SkillKit.Response.Text](SkillKit.Response.Text.md): Describes an LLM text response.

- [SkillKit.Response.ToolCall](SkillKit.Response.ToolCall.md): Describes an LLM tool call response.

- [SkillKit.Runtime](SkillKit.Runtime.md): Behaviour for agent runtimes.
- [SkillKit.Runtime.Local](SkillKit.Runtime.Local.md): Local runtime — starts agent supervision trees in the current node.
- [SkillKit.Scope.Validation](SkillKit.Scope.Validation.md): Pure-function scope validation and wildcard matching for SkillKit.
- [SkillKit.Storage](SkillKit.Storage.md): Behaviour and convenience API for pluggable storage backends.
- [SkillKit.Storage.File](SkillKit.Storage.File.md): Storage provider backed by the local filesystem.
- [SkillKit.Storage.Memory](SkillKit.Storage.Memory.md): In-memory storage provider backed by an `Agent` process.
- [SkillKit.Telemetry.Handler](SkillKit.Telemetry.Handler.md): A behaviour and macro for creating event handlers that subscribe to telemetry events.
- [SkillKit.ToolExecution](SkillKit.ToolExecution.md): Manages tool execution with suspension and resumption.
- [SkillKit.Tools.SendMessage](SkillKit.Tools.SendMessage.md): Tool for sending a message to a pre-bound target agent.
- [SkillKit.Tools.Webhook](SkillKit.Tools.Webhook.md): Kit that lets agents register webhook endpoints via skill activation.
- [SkillKit.Tools.WebhookInbox](SkillKit.Tools.WebhookInbox.md): Tool for reading webhook deliveries that have landed in the calling
agent's inbox.
- [SkillKit.Webhook](SkillKit.Webhook.md): Primary struct and public facade for the webhook adapter.
- [SkillKit.Webhook.BodyReader](SkillKit.Webhook.BodyReader.md): `Plug.Parsers` body-reader callback that stashes the raw request body
in `conn.assigns.raw_body` before handing it off to the parser.
- [SkillKit.Webhook.Idempotency](SkillKit.Webhook.Idempotency.md): Bounded ETS-backed dedup cache for webhook deliveries.
- [SkillKit.Webhook.Inbox](SkillKit.Webhook.Inbox.md): Behaviour for per-agent webhook delivery persistence and dispatch.
- [SkillKit.Webhook.Inbox.Memory](SkillKit.Webhook.Inbox.Memory.md): In-memory `SkillKit.Webhook.Inbox` implementation backed by an ETS table
and a `GenServer` owner.
- [SkillKit.Webhook.Lifecycle](SkillKit.Webhook.Lifecycle.md): `:pre_agent` hook handler injected onto every skill in
`SkillKit.Tools.Webhook`.
- [SkillKit.Webhook.Message](SkillKit.Webhook.Message.md): Composes the user-facing text and `send_event/3` opts that an `Inbox`
impl passes when emitting a delivery to the receiving agent.
- [SkillKit.Webhook.Plug](SkillKit.Webhook.Plug.md): Plug that routes inbound webhook requests.
- [SkillKit.Webhook.Registry](SkillKit.Webhook.Registry.md): Per-node directory of running agents the webhook Plug can dispatch to.
- [SkillKit.Webhook.Store.Memory](SkillKit.Webhook.Store.Memory.md): In-memory webhook store backed by an `Agent` process holding a map.
- [SkillKit.Webhook.Supervisor](SkillKit.Webhook.Supervisor.md): Supervision tree for the webhook adapter.
- [SkillKit.Webhook.Template](SkillKit.Webhook.Template.md): Token substitution for HMAC signing inputs.
- [SkillKit.Webhook.Url](SkillKit.Webhook.Url.md): Builds externally-visible URLs for webhook registrations.
- [SkillKit.Webhook.Verifier](SkillKit.Webhook.Verifier.md): Behaviour for webhook signature verifiers.
- [SkillKit.Webhook.Verifier.Github](SkillKit.Webhook.Verifier.Github.md): GitHub webhook signature verifier.
- [SkillKit.Webhook.Verifier.Hmac](SkillKit.Webhook.Verifier.Hmac.md): Config-driven HMAC signature verification engine.
- [SkillKit.Webhook.Verifier.None](SkillKit.Webhook.Verifier.None.md): Verifier that accepts every request without a signature check.
- [SkillKit.Webhook.Verifier.Slack](SkillKit.Webhook.Verifier.Slack.md): Slack webhook signature verifier.
- [SkillKit.Webhook.Verifier.Stripe](SkillKit.Webhook.Verifier.Stripe.md): Stripe webhook signature verifier.

- Public API
  - [SkillKit](SkillKit.md): SkillKit — an Elixir framework for building LLM agent systems.
  - [SkillKit.AgentRef](SkillKit.AgentRef.md): Opaque reference to a running agent.

- Types &amp; Events
  - [SkillKit.Event.Delta](SkillKit.Event.Delta.md): A text fragment from the LLM stream.
  - [SkillKit.Event.Done](SkillKit.Event.Done.md): The LLM turn is complete.
  - [SkillKit.Event.Error](SkillKit.Event.Error.md): An error from the LLM.
  - [SkillKit.Event.Streamable](SkillKit.Event.Streamable.md): Converts provider-specific events into SkillKit events.
  - [SkillKit.Event.ToolCallComplete](SkillKit.Event.ToolCallComplete.md): A tool call is fully parsed with input.
  - [SkillKit.Event.ToolCallStart](SkillKit.Event.ToolCallStart.md): A tool call has begun (name and id known).
  - [SkillKit.Event.Usage](SkillKit.Event.Usage.md): Token usage counts from the LLM.
  - [SkillKit.Types.AssistantMessage](SkillKit.Types.AssistantMessage.md): An assistant response in a conversation.
  - [SkillKit.Types.SystemMessage](SkillKit.Types.SystemMessage.md): A system message in a conversation.
  - [SkillKit.Types.ToolCall](SkillKit.Types.ToolCall.md): A tool invocation from the assistant.
  - [SkillKit.Types.ToolResult](SkillKit.Types.ToolResult.md): The result of executing a tool.
  - [SkillKit.Types.UserMessage](SkillKit.Types.UserMessage.md): A user message in a conversation.

- Agent System
  - [SkillKit.Agent](SkillKit.Agent.md): Data struct and parser for AGENT.md files.
  - [SkillKit.Agent.Core](SkillKit.Agent.Core.md): Supervisor for the core agent processes: Mailbox, Server, ToolRunner.
  - [SkillKit.Agent.Mailbox](SkillKit.Agent.Mailbox.md): Buffers incoming messages and flushes to Agent.Server.
  - [SkillKit.Agent.Server](SkillKit.Agent.Server.md): Core agent process. Drives the LLM loop and manages agent lifecycle.
  - [SkillKit.Agent.ToolRunner](SkillKit.Agent.ToolRunner.md): DynamicSupervisor for tool call execution. Public API for batch
tool execution via `execute_all/2`.

- LLM Providers
  - [SkillKit.LLM](SkillKit.LLM.md): Behaviour for LLM provider adapters and dispatch entry point.
  - [SkillKit.LLM.Anthropic](SkillKit.LLM.Anthropic.md): Anthropic adapter for `SkillKit.LLM`.
  - [SkillKit.LLM.Anthropic.Encoder](SkillKit.LLM.Anthropic.Encoder.md): Translates SkillKit.Types message structs to Anthropic Messages API format.

- Anthropic Client
  - [Anthropic](Anthropic.md): Public API for the Anthropic Messages client.
  - [Anthropic.Client](Anthropic.Client.md): Struct holding Anthropic API connection configuration.
  - [Anthropic.Event](Anthropic.Event.md): Parses raw Anthropic SSE event maps into typed event structs.
  - [Anthropic.Event.ContentBlockDelta](Anthropic.Event.ContentBlockDelta.md): Represents the `content_block_delta` SSE event from the Anthropic streaming API.
  - [Anthropic.Event.ContentBlockStart](Anthropic.Event.ContentBlockStart.md): Represents the `content_block_start` SSE event from the Anthropic streaming API.
  - [Anthropic.Event.ContentBlockStop](Anthropic.Event.ContentBlockStop.md): Represents the `content_block_stop` SSE event from the Anthropic streaming API.
  - [Anthropic.Event.MessageDelta](Anthropic.Event.MessageDelta.md): Represents the `message_delta` SSE event from the Anthropic streaming API.
  - [Anthropic.Event.MessageStart](Anthropic.Event.MessageStart.md): Represents the `message_start` SSE event from the Anthropic streaming API.
  - [Anthropic.Event.MessageStop](Anthropic.Event.MessageStop.md): Represents the `message_stop` SSE event from the Anthropic streaming API.
  - [Anthropic.Telemetry](Anthropic.Telemetry.md): Telemetry integration for the Anthropic client.

- Skills &amp; Kits
  - [SkillKit.Catalog](SkillKit.Catalog.md): Aggregates kits from multiple providers and exposes skills, agents,
tool definitions, and tool call classification.
  - [SkillKit.Frontmatter](SkillKit.Frontmatter.md): Shared frontmatter parsing for SKILL.md and AGENT.md files.
  - [SkillKit.Kit](SkillKit.Kit.md): A packaging envelope for skills and agent definitions.
  - [SkillKit.Kit.Local](SkillKit.Kit.Local.md): Provider that loads kits from filesystem directories.
  - [SkillKit.Kit.Local.Parser](SkillKit.Kit.Local.Parser.md): Internal parser for the Local provider.
  - [SkillKit.Kit.Memory](SkillKit.Kit.Memory.md): In-memory kit provider for testing and dynamic skill injection.
  - [SkillKit.Kit.Provider](SkillKit.Kit.Provider.md): Behaviour for skill kit providers.
  - [SkillKit.Skill](SkillKit.Skill.md): Pure data struct representing a registered skill in SkillKit.

- Execution &amp; Hooks
  - [SkillKit.Hook](SkillKit.Hook.md): Represents a lifecycle hook that fires at agent boundaries.
  - [SkillKit.Tool](SkillKit.Tool.md): Describes a tool the LLM can call and defines the callback contract
for tool implementations.
  - [SkillKit.Tools.Shell](SkillKit.Tools.Shell.md): Shell tool — provides bash command execution in a hermetic child
environment.

- Authorization
  - [SkillKit.Authorization](SkillKit.Authorization.md): Pure-function authorization API for SkillKit.
  - [SkillKit.AuthorizationProvider](SkillKit.AuthorizationProvider.md): Behaviour contract for scope-resolution providers used by `SkillKit.Authorization.authorize/3`.
  - [SkillKit.Scope](SkillKit.Scope.md): Protocol for structured scope resolution in SkillKit.

- Persistence
  - [SkillKit.Conversation.Store](SkillKit.Conversation.Store.md): Behaviour for conversation persistence backends.
  - [SkillKit.Conversation.Store.Filesystem](SkillKit.Conversation.Store.Filesystem.md): Stores conversations as serialized Erlang terms via the Storage provider.

- Telemetry
  - [SkillKit.Telemetry](SkillKit.Telemetry.md): Telemetry integration for SkillKit.

## Mix Tasks

- [mix skill_kit.chat](Mix.Tasks.SkillKit.Chat.md): Interactive chat session with a SkillKit agent.
- [mix skill_kit.demo](Mix.Tasks.SkillKit.Demo.md): Smoke-test the full SkillKit agent loop against the Anthropic API.
- [mix skill_kit.ralph](Mix.Tasks.SkillKit.Ralph.md): Run a Ralph loop against a TODO file.

