SKILL.md is required.
SKILL.md
The portable part of an agent. YAML frontmatter at the top contains portable metadata (name, description, license, compatibility), and the markdown body is the system prompt that drives the agent’s behavior. Runtime configuration (credentials, schedule, models, webhooks, hooks, params) lives in the separateconfig.toml file.
What it is
SKILL.md lives inside each agent’s directory (e.g. agents/dev/SKILL.md). The frontmatter is parsed for portable metadata, and the markdown body is injected as the LLM’s system prompt at runtime. Everything the agent does is driven by these instructions.
How it’s used
The scheduler readsSKILL.md and sends the markdown body as the system prompt. Runtime configuration is loaded from config.toml. A preamble is prepended that teaches the agent its language skills (signals, calls, locks, credentials). The LLM then receives a user-message prompt with:
<skill-config>— JSON of theparamstable from the agent’sconfig.toml<credential-context>— describes available environment variables and tools<environment>— filesystem constraints (read-only root,/tmpfor work)- Trigger context — schedule, webhook payload, manual, or subagent call context
Writing tips
- Write as direct instructions to an LLM. “You are an automation agent. Your job is to…”
- Be specific about workflow. Numbered steps are better than vague descriptions.
- Reference
<skill-config>for parameter values. Don’t hardcode repo names or labels — put them inparamsand reference them. - Handle both trigger types if the agent uses both schedule and webhooks.
- Use signal commands like
al-rerunfor backlog draining andal-statusfor TUI updates. - Keep it concise. The system prompt consumes tokens every run. Avoid lengthy explanations of things the LLM already knows.
Example
Handling trigger context
YourSKILL.md should handle different trigger types if the agent uses both:
AGENTS.md
Project-level shared instructions that are loaded byal chat.
What it is
AGENTS.md lives at the project root (e.g. my-project/AGENTS.md). It provides shared context about the project that is relevant when interacting with agents via the chat console.
How it’s used
When you runal chat (project-level console), the contents of AGENTS.md are loaded as reference context. It is not injected into automated agent runs — only into the interactive chat session.
When to use it
UseAGENTS.md to document:
- Project conventions that are relevant when working with agents interactively
- How agents in the project relate to each other
- Common tasks and how to accomplish them via chat
CLAUDE.md
Instructions for AI development tools (like Claude Code). Not used by Action Llama at runtime.What it is
CLAUDE.md lives at the project root and provides instructions to AI coding assistants that may be editing the project’s source code. Do not confuse it with SKILL.md, which is the agent instructions file.
How it’s used
CLAUDE.md is not read by Action Llama. It has no effect on agent runs, the scheduler, or the chat console. It exists purely for developer tooling context.
When to use it
If you use Claude Code or similar AI development tools to work on your Action Llama project, put project conventions, build commands, and coding guidelines inCLAUDE.md. See Claude Integration for how Claude Code uses this file alongside the MCP server.