Skills Architecture
What Are Skills
Camel Kit uses Anthropic Agent Skills to provide component-specific documentation and configuration guidance. Instead of loading all 396 Camel component catalogs into context, skills are loaded on-demand only when needed.
- Commands (like
/camel-flow,/camel-implement) ask interactive questions about the integration - Skills (one per Camel component, 396 total) provide component knowledge: description, capabilities, usage patterns, URI syntax, parameters, Maven dependencies, and reference to the complete JSON schema
Skills are user-invocable: false — they are only loaded by commands when specific components are selected.
Skill Structure
Each skill directory contains:
{agent-folder}/skills/camel-component-{name}/
├── SKILL.md # Component documentation with YAML frontmatter
└── schema.json # Complete component schema from Camel catalogWhere {agent-folder} is:
.bob/skills/for IBM Project Bob.gemini/skills/for Gemini CLI.claude/skills/for Claude Code
SKILL.md Format
---
name: camel-component-{name}
description: {component description}
user-invocable: false
---
# {Component Title}
{Component description}
## Component Information
- Scheme: {scheme}
- Syntax: {syntax}
- Type: Consumer/Producer/Both
## Usage Patterns
### Consumer (from)
- from:
uri: {scheme}:name
parameters:
# See schema.json
## Configuration Reference
See [schema.json](schema.json) for complete options.
## Maven Dependency
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>{artifactId}</artifactId>
</dependency>Pre-Generated Skills
All 396 Camel component skills are pre-generated and bundled in the camel-kit-core module:
Source location: camel-kit-core/src/main/resources/skills/
During camel-kit init, skills are copied to the appropriate AI agent folder:
camel-kit init --ai bobcopies to.bob/skills/camel-kit init --ai geminicopies to.gemini/skills/camel-kit init --ai claudecopies to.claude/skills/
Why pre-generated?
- Zero setup — Users get skills immediately during init
- Version locked — Skills match the Camel version used by camel-kit
- Offline ready — No need to download Camel catalog or clone repositories
- Consistent — All users have identical component knowledge
- Single source — One set of skills for all AI agents
Progressive Disclosure
Skills use a three-level progressive disclosure model:
| Level | Content | Token Cost |
|---|---|---|
| Level 1 — Metadata | YAML frontmatter with name and description | ~100 tokens |
| Level 2 — Instructions | SKILL.md content when skill is loaded | <5k tokens |
| Level 3 — Resources | schema.json loaded only when needed | Zero context cost |
Example flow:
- User runs
/camel-flow order-processing - Command asks questions, user mentions “Kafka” and “SQL”
- Command loads ONLY the kafka and sql skills (2 of 396)
- Context stays small, focused on relevant components
How Commands Use Skills
/camel-flow
When user selects a component:
- Ask: “For [source], I suggest using: Component: kafka”
- Reference: “For detailed documentation, see: .claude/skills/camel-component-kafka/SKILL.md”
- Load skill: Read SKILL.md for usage patterns and capabilities
/camel-implement
When generating YAML:
- Identify components from flow design
- Load skills:
.claude/skills/camel-component-{name}/SKILL.md - Read schemas:
.claude/skills/camel-component-{name}/schema.json - Generate YAML with correct syntax and parameters
- Validate against Camel YAML DSL schema
Examples
Kafka Component
Skill path: {agent-folder}/skills/camel-component-kafka/SKILL.md
name: camel-component-kafka
description: Send and receive messages to/from an Apache Kafka broker.
user-invocable: falseUsage Pattern:
- from:
uri: kafka:topic
parameters:
brokers: "{{kafka.brokers}}"
groupId: "{{kafka.groupId}}"SQL Component
Skill path: {agent-folder}/skills/camel-component-sql/SKILL.md
name: camel-component-sql
description: Perform SQL queries using JDBC.
user-invocable: falseUsage Pattern:
- to:
uri: "sql:INSERT INTO orders VALUES (:#id, :#amount)"
parameters:
dataSource: "#dataSource"Extending: Adding a New Skill
- Create a skill directory in
camel-kit-core/src/main/resources/skills/:
skills/camel-component-{name}/
├── SKILL.md
└── schema.json- Follow the SKILL.md format above
- Add MCP tool usage instructions if applicable
- Register the skill in the appropriate command templates