Skip to content

Commit 780d600

Browse files
committed
feat: support claude plugin and a skill versions
1 parent 8324129 commit 780d600

6 files changed

Lines changed: 193 additions & 7 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"name": "aiven-skills-bundle",
3+
"owner": {
4+
"name": "Aiven",
5+
"email": "opensource@aiven.io"
6+
},
7+
"metadata": {
8+
"description": "Official Aiven skills for AI agents — manage Aiven-managed data services directly from Cursor, Claude CLI, or any agent that supports the Agent Skills spec.",
9+
"version": "1.0.0"
10+
},
11+
"plugins": [
12+
{
13+
"name": "aiven-skills-bundle",
14+
"source": {
15+
"source": "github",
16+
"repo": "Aiven-Open/aiven-skills-bundle"
17+
},
18+
"description": "AI agent skills for managing Aiven-managed data services directly from Cursor, Claude CLI, or any agent that supports the Agent Skills spec.",
19+
"version": "1.0.0",
20+
"author": {
21+
"name": "Aiven"
22+
},
23+
"homepage": "https://github.com/Aiven-Open/aiven-skills-bundle",
24+
"repository": "https://github.com/Aiven-Open/aiven-skills-bundle",
25+
"license": "Apache-2.0",
26+
"keywords": ["aiven", "kafka", "data-services", "devops", "cloud", "python", "java"],
27+
"category": "devops"
28+
}
29+
]
30+
}

.claude-plugin/plugin.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"name": "aiven-skills-bundle",
3+
"version": "1.0.0",
4+
"description": "AI agent skills for managing Aiven-managed data services directly from Cursor, Claude CLI, or any agent that supports the Agent Skills spec.",
5+
"author": {
6+
"name": "Aiven",
7+
"url": "https://github.com/Aiven-Open"
8+
},
9+
"homepage": "https://github.com/Aiven-Open/aiven-skills-bundle",
10+
"repository": "https://github.com/Aiven-Open/aiven-skills-bundle",
11+
"license": "Apache-2.0",
12+
"keywords": ["aiven", "kafka", "data-services", "devops", "cloud", "python", "java"],
13+
"skills": "./skills/"
14+
}

CONTRIBUTING.md

Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,12 @@ this guide before opening a pull request.
1414
1. [Repository Layout](#repository-layout)
1515
2. [Skill Structure](#skill-structure)
1616
3. [SKILL.md Requirements](#skillmd-requirements)
17-
4. [Quality Guidelines](#quality-guidelines)
18-
5. [Testing & Verification](#testing--verification)
19-
6. [Opening a Pull Request](#opening-a-pull-request)
20-
7. [Commit Messages](#commit-messages)
21-
8. [Security](#security)
17+
4. [Versioning](#versioning)
18+
5. [Quality Guidelines](#quality-guidelines)
19+
6. [Testing & Verification](#testing--verification)
20+
7. [Opening a Pull Request](#opening-a-pull-request)
21+
8. [Commit Messages](#commit-messages)
22+
9. [Security](#security)
2223

2324
---
2425

@@ -149,6 +150,50 @@ Document these explicitly in `SKILL.md` when relevant:
149150

150151
---
151152

153+
## Versioning
154+
155+
Each skill is versioned **independently** from the bundle itself. Bumping one skill's
156+
version does not require bumping others.
157+
158+
### Where versions live
159+
160+
Versions are recorded in two places — both must be updated together:
161+
162+
1. **`SKILL.md` front-matter** — the `version` field:
163+
164+
```yaml
165+
---
166+
name: aiven-kafka-setup-avn
167+
version: "1.1.0"
168+
---
169+
```
170+
171+
2. **`VERSIONS.md`** in the repository root — the central version table and changelog:
172+
173+
```markdown
174+
| Skill | Version | Last Updated |
175+
|-----------------------|---------|--------------|
176+
| aiven-kafka-setup-avn | 1.1.0 | 2026-04-10 |
177+
178+
### 2026-04-10
179+
- `aiven-kafka-setup-avn` 1.1.0: added Python template support.
180+
```
181+
182+
### When to bump the version
183+
184+
Follow [Semantic Versioning](https://semver.org/):
185+
186+
| Change | Version bump |
187+
|---|---|
188+
| New capability, new template language, new mandatory step | **minor** (`0.1``0.2`, `1.0``1.1`) |
189+
| Breaking change (removed step, renamed env var, changed script interface) | **major** (`1.x``2.0`) |
190+
| Bug fix, wording clarification, doc-only update | **patch** (`1.0.0``1.0.1`) |
191+
192+
> A PR that changes skill behaviour **without** updating both `SKILL.md` and
193+
> `VERSIONS.md` will be asked to add the version bump before merging.
194+
195+
---
196+
152197
## Quality Guidelines
153198

154199
| Area | Requirement |

README.md

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,82 @@ end-to-end, prompting you only when a decision is needed.
5353

5454
---
5555

56+
## Installation
57+
58+
---
59+
60+
### Option 1: CLI Install (Recommended)
61+
62+
Use [npx skills](https://github.com/agentskillsio/skills) to install skills directly:
63+
64+
```bash
65+
# Install all skills
66+
npx skills add Aiven-Open/aiven-skills-bundle
67+
68+
# Install a specific skill
69+
npx skills add Aiven-Open/aiven-skills-bundle --skill aiven-kafka-setup-avn
70+
71+
# List available skills
72+
npx skills add Aiven-Open/aiven-skills-bundle --list
73+
```
74+
75+
This automatically installs to your `.agents/skills/` directory (and symlinks into
76+
`.claude/skills/` for Claude Code compatibility).
77+
78+
---
79+
80+
### Option 2: Clone and Copy
81+
82+
Clone the repository and copy the `skills/` folder into your project. Works with any agent tool, no extra tooling required:
83+
84+
```bash
85+
git clone https://github.com/Aiven-Open/aiven-skills-bundle.git
86+
cp -r aiven-skills-bundle/skills/* .agents/skills/
87+
```
88+
89+
Your agent will discover skills automatically from `.agents/skills/`.
90+
91+
---
92+
93+
### Option 3: Git Submodule
94+
95+
Add this repository as a submodule so you can pull updates with a single command:
96+
97+
```bash
98+
git submodule add https://github.com/Aiven-Open/aiven-skills-bundle.git .agents/aiven-skills-bundle
99+
```
100+
101+
Reference skills from `.agents/aiven-skills-bundle/skills/`.
102+
103+
To update to the latest version later:
104+
105+
```bash
106+
git submodule update --remote .agents/aiven-skills-bundle
107+
```
108+
109+
---
110+
111+
### Option 4: Claude Code Plugin
112+
113+
Install via Claude Code's built-in plugin system (requires Claude Code). This repository
114+
acts as both the marketplace and the plugin, so add it once and install from it:
115+
116+
```bash
117+
# 1. Register this repository as a marketplace
118+
/plugin marketplace add Aiven-Open/aiven-skills-bundle
119+
120+
# 2. Install the plugin (user scope — available across all projects)
121+
claude plugin install aiven-skills-bundle@aiven-skills-bundle --scope user
122+
123+
# Or install to project scope (shared with your team via version control)
124+
claude plugin install aiven-skills-bundle@aiven-skills-bundle --scope project
125+
```
126+
127+
The plugin manifest is at [`.claude-plugin/plugin.json`](.claude-plugin/plugin.json) and
128+
the marketplace catalog is at [`.claude-plugin/marketplace.json`](.claude-plugin/marketplace.json).
129+
130+
---
131+
56132
## Contributing
57133

58134
Want to add a new skill or improve an existing one? See [CONTRIBUTING.md](CONTRIBUTING.md)

VERSIONS.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Aiven Skills Bundle — Versions
2+
3+
Current versions of all skills. Agents can compare against local versions to check for updates.
4+
5+
| Skill | Version | Last Updated |
6+
|-------|---------|--------------|
7+
| aiven-kafka-setup-avn | 1.0.0 | 2026-04-02 |
8+
9+
## Recent Changes
10+
11+
### 2026-04-02
12+
13+
- Initial release of `aiven-kafka-setup-avn` skill: create and configure an Apache Kafka
14+
cluster on Aiven using the `avn` CLI, including SASL_SSL auth, Schema Registry, and a
15+
working producer/consumer example in Python and Java.

skills/aiven-kafka-setup-avn/SERVICE_CREATION_AVN.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ creation, users, ACLs, schema registration, env-var extraction, and verification
1010

1111
## 1. Choose a Region
1212

13-
**ALWAYS** ask the user which region they want using the AskQuestion tool. You **MUST** use the exact `CLOUD_NAME` from the table below:
13+
If the user already provided a `CLOUD_NAME` in their request, use it directly and skip
14+
the question. Otherwise, ask which region they want using the **AskQuestion tool** before
15+
proceeding.
16+
17+
You **MUST** use the exact `CLOUD_NAME` from the table below:
1418

1519
| Region | CLOUD_NAME |
1620
|--------|------------|
@@ -20,7 +24,9 @@ creation, users, ACLs, schema registration, env-var extraction, and verification
2024
| Europe | `do-fra` |
2125
| United States | `do-nyc` |
2226

23-
**CRITICAL**: Do NOT use any other cloud names or regions. If the user asks for a region not in this list, inform them that only these specific regions are supported by this skill's automated setup.
27+
**CRITICAL**: Do NOT use any other cloud names or regions. If the user asks for a region
28+
not in this list, inform them that only these specific regions are supported by this
29+
skill's automated setup.
2430

2531
---
2632

0 commit comments

Comments
 (0)