Skill Creator Skill - Clawdbotスキル開発を効率化
Skill Creator Skillを利用して、Clawdbotスキルの設計、構造化、パッケージングを効率化する方法を解説します。
Skill Creator Skill - AgentSkillの作成・更新を自動化
Skill Creator Skillは、Clawdbot Agent向けの新規Skill(プラグイン)の作成、更新、テスト、公開を自動化するための開発支援ツールである。本Skillにより、Skillのボイラープレートコード生成、SKILL.mdドキュメント作成、バリデーション、ClawdHubへの公開までを一貫して実行できる。
概要
Clawdbot Agentは、拡張機能として「Skill」と呼ばれるプラグインシステムを採用している。開発者はSkillを作成することで、Agent機能を自由に拡張できるが、適切なディレクトリ構造、メタデータ、ドキュメントの作成には一定の知識が必要である。
Skill Creator Skillは、以下のワークフローを自動化する。
- Skillプロジェクトの初期化
- ボイラープレートコード生成
- SKILL.mdドキュメント自動生成
- package.jsonメタデータ作成
- ユニットテスト・統合テストのセットアップ
- バリデーション(構造、コード品質、セキュリティ)
- ClawdHubへの公開
2026年2月時点で、Skill Creator SkillはJavaScript/TypeScriptベースのSkill開発をサポートしている。
技術的仕様
システム要件
- Clawdbot Agent 0.9.0以降
- Node.js 18.0以降
- npm 8.0以降
- Git 2.30以降(公開時)
インストール
# Skill Creator Skillのインストール
clawdhub install skill-creator
# 初回セットアップ
clawdbot skill skill-creator init
提供されるコマンド
# 新規Skill作成
clawdbot skill skill-creator create \
--name my-custom-skill \
--description "My custom skill for Clawdbot" \
--author "Your Name" \
--license MIT
# ボイラープレートコード生成
clawdbot skill skill-creator scaffold \
--template basic \
--typescript
# SKILL.mdドキュメント生成
clawdbot skill skill-creator generate-docs \
--skill-dir ./my-custom-skill
# バリデーション
clawdbot skill skill-creator validate \
--skill-dir ./my-custom-skill
# テスト実行
clawdbot skill skill-creator test \
--skill-dir ./my-custom-skill
# ClawdHubへの公開
clawdbot skill skill-creator publish \
--skill-dir ./my-custom-skill \
--tag v1.0.0
主要機能
1. Skillプロジェクト初期化
対話型ウィザードでSkillプロジェクトを作成する。
clawdbot skill skill-creator create --name weather-api-skill
対話型プロンプト例:
✓ Skill name: weather-api-skill
✓ Description: Fetch weather data from OpenWeatherMap API
✓ Author: John Doe
✓ License: MIT
✓ Template: (Use arrow keys)
❯ basic - Basic skill template
api-integration - External API integration
database - Database operations
custom - Custom template
✓ Language: (Use arrow keys)
❯ JavaScript
TypeScript
Creating skill project...
✓ Directory created: ./weather-api-skill
✓ package.json created
✓ SKILL.md created
✓ index.js created
✓ test/ created
Next steps:
cd weather-api-skill
npm install
npm test
生成されるディレクトリ構造:
weather-api-skill/
├── SKILL.md # Skill説明ドキュメント
├── package.json # パッケージメタデータ
├── index.js # エントリーポイント
├── lib/ # ライブラリコード
│ └── api.js
├── test/ # テストコード
│ └── index.test.js
├── examples/ # 使用例
│ └── basic-usage.js
└── README.md # 開発者向けREADME
2. ボイラープレートコード生成
Skill Creatorは以下のテンプレートを提供する。
Basic Template
// index.js (自動生成)
module.exports = {
name: 'weather-api-skill',
version: '1.0.0',
description: 'Fetch weather data from OpenWeatherMap API',
commands: {
'weather': {
description: 'Get current weather for a location',
params: {
location: { type: 'string', required: true },
units: { type: 'string', default: 'metric' }
},
handler: async (params, context) => {
const { location, units } = params;
const weather = await fetchWeather(location, units);
return weather;
}
}
},
hooks: {
onInstall: async (context) => {
console.log('Weather API Skill installed');
},
onUninstall: async (context) => {
console.log('Weather API Skill uninstalled');
}
}
};
async function fetchWeather(location, units) {
// Implementation here
}
API Integration Template
外部API連携用のテンプレート。認証、エラーハンドリング、レート制限処理を含む。
// lib/api.js (自動生成)
const axios = require('axios');
class WeatherAPI {
constructor(apiKey) {
this.apiKey = apiKey;
this.baseURL = 'https://api.openweathermap.org/data/2.5';
this.client = axios.create({
baseURL: this.baseURL,
timeout: 10000
});
}
async getCurrentWeather(location, units = 'metric') {
try {
const response = await this.client.get('/weather', {
params: {
q: location,
units: units,
appid: this.apiKey
}
});
return response.data;
} catch (error) {
throw new Error(`Weather API error: ${error.message}`);
}
}
}
module.exports = WeatherAPI;
3. SKILL.mdドキュメント自動生成
コードから自動的にSKILL.mdを生成する。
clawdbot skill skill-creator generate-docs --skill-dir ./weather-api-skill
生成されるSKILL.md:
# Weather API Skill
Fetch weather data from OpenWeatherMap API
## Installation
```bash
clawdhub install weather-api-skill
Configuration
Set the following environment variables:
OPENWEATHERMAP_API_KEY: Your OpenWeatherMap API key
Commands
weather
Get current weather for a location
Parameters:
location(string, required): Location name (e.g., “Tokyo”, “New York”)units(string, optional): Units of measurement (“metric”, “imperial”). Default: “metric”
Example:
clawdbot skill weather-api-skill weather --location "Tokyo" --units metric
Response:
{
"temperature": 15.2,
"description": "Clear sky",
"humidity": 60,
"wind_speed": 3.5
}
API Reference
See API Documentation for detailed information.
License
MIT
### 4. バリデーション
Skillの構造、コード品質、セキュリティをチェックする。
```bash
clawdbot skill skill-creator validate --skill-dir ./weather-api-skill
検証項目:
✓ Directory structure
✓ SKILL.md exists
✓ package.json exists
✓ index.js exists
✓ test/ directory exists
✓ package.json validation
✓ name field is valid
✓ version follows SemVer
✓ description is present
✓ license is specified
✓ Code quality (ESLint)
✓ No syntax errors
✓ No unused variables
✓ Follows style guide
✓ Security (npm audit)
✓ No high-severity vulnerabilities
✓ Dependencies are up-to-date
✓ Tests
✓ Test files exist
✓ All tests pass (10/10)
✓ Code coverage: 85%
All checks passed! Skill is ready for publication.
5. テストセットアップ
ユニットテスト・統合テストの雛形を生成する。
// test/index.test.js (自動生成)
const { expect } = require('chai');
const skill = require('../index');
describe('Weather API Skill', () => {
describe('weather command', () => {
it('should fetch weather for a valid location', async () => {
const result = await skill.commands.weather.handler({
location: 'Tokyo',
units: 'metric'
});
expect(result).to.have.property('temperature');
expect(result).to.have.property('description');
});
it('should throw error for invalid location', async () => {
try {
await skill.commands.weather.handler({
location: 'InvalidCityName123456'
});
throw new Error('Should have thrown error');
} catch (error) {
expect(error.message).to.include('Weather API error');
}
});
});
});
6. ClawdHubへの公開
バリデーション完了後、ClawdHubリポジトリに公開する。
clawdbot skill skill-creator publish \
--skill-dir ./weather-api-skill \
--tag v1.0.0 \
--changelog "Initial release"
公開フロー:
- バリデーション実行
- Gitタグ作成
- npmパッケージビルド
- ClawdHubリポジトリにプッシュ
- リリースノート生成
API仕様
Skill Creator SkillはClawdbot Gateway経由でREST APIとして利用可能である。
Skill作成API
POST /api/skills/skill-creator/create
Content-Type: application/json
{
"name": "weather-api-skill",
"description": "Fetch weather data",
"author": "John Doe",
"license": "MIT",
"template": "api-integration",
"language": "javascript"
}
レスポンス:
{
"skillId": "weather-api-skill",
"path": "./weather-api-skill",
"files": [
"package.json",
"SKILL.md",
"index.js",
"lib/api.js",
"test/index.test.js"
],
"nextSteps": [
"cd weather-api-skill",
"npm install",
"npm test"
]
}
実装例
1. カスタムSkill作成
データベース操作を行うSkillを作成する。
# プロジェクト初期化
clawdbot skill skill-creator create \
--name postgresql-skill \
--template database \
--typescript
cd postgresql-skill
npm install pg
# コード実装
code lib/database.ts
# テスト
npm test
# バリデーション
clawdbot skill skill-creator validate
# 公開
clawdbot skill skill-creator publish --tag v1.0.0
2. 既存ライブラリのSkillラッパー作成
既存のNode.jsライブラリをClawdbot Skillとして公開する。
// Stripe APIラッパーSkillの作成
clawdbot skill skill-creator create \
--name stripe-skill \
--template api-integration
// index.js
const Stripe = require('stripe');
module.exports = {
name: 'stripe-skill',
commands: {
'create-payment-intent': {
handler: async (params) => {
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
return await stripe.paymentIntents.create({
amount: params.amount,
currency: params.currency
});
}
}
}
};
3. 複数コマンドを持つSkill作成
複雑な機能を持つSkillを作成する。
clawdbot skill skill-creator create \
--name analytics-skill \
--template advanced
# 複数コマンドの実装
# - track: イベントトラッキング
# - report: レポート生成
# - export: データエクスポート
ユースケース
1. 社内ツールのSkill化
社内で使用しているツールをClawdbot Skillとして公開する。
# 社内Wikiツール連携Skill
clawdbot skill skill-creator create \
--name internal-wiki-skill \
--template api-integration \
--private # プライベートリポジトリとして公開
2. オープンソースSkillの公開
コミュニティ向けにSkillを公開する。
# AWS S3操作Skill
clawdbot skill skill-creator create \
--name aws-s3-skill \
--license MIT
# 実装・テスト後、ClawdHubに公開
clawdbot skill skill-creator publish \
--public \
--github-repo https://github.com/yourusername/aws-s3-skill
3. Skill開発教育
新規開発者向けにSkill作成のチュートリアルを提供する。
# チュートリアル用Skillテンプレート
clawdbot skill skill-creator create \
--name tutorial-skill \
--template tutorial \
--with-examples
ベストプラクティス
Skillディレクトリ構造
my-skill/
├── SKILL.md # 必須: Skill説明
├── package.json # 必須: パッケージメタデータ
├── index.js # 必須: エントリーポイント
├── lib/ # 推奨: ライブラリコード
│ ├── api.js
│ └── utils.js
├── test/ # 必須: テストコード
│ ├── index.test.js
│ └── integration.test.js
├── examples/ # 推奨: 使用例
│ └── basic-usage.js
├── docs/ # 推奨: 詳細ドキュメント
│ └── api.md
└── .clawdbotrc # オプション: Clawdbot設定
package.json必須フィールド
{
"name": "my-skill",
"version": "1.0.0",
"description": "My custom Clawdbot skill",
"main": "index.js",
"keywords": ["clawdbot", "skill", "api"],
"author": "Your Name <email@example.com>",
"license": "MIT",
"repository": {
"type": "git",
"url": "https://github.com/yourusername/my-skill"
},
"clawdbot": {
"minVersion": "0.9.0",
"category": "api-integration",
"tags": ["weather", "api"]
}
}
エラーハンドリング
// 推奨: 詳細なエラーメッセージ
commands: {
'fetch-data': {
handler: async (params) => {
try {
return await fetchData(params.url);
} catch (error) {
// Clawdbotが理解できる形式でエラーを返す
throw {
code: 'FETCH_ERROR',
message: `Failed to fetch data: ${error.message}`,
originalError: error
};
}
}
}
}
制限事項
- Skillサイズ: 50MB以下(依存パッケージ含む)を推奨
- Node.jsバージョン: 18.0以降のみサポート
- 言語: JavaScript/TypeScriptのみ(他言語はバイナリラッパー経由で可能)
セキュリティガイドライン
Skillを公開する際、以下のセキュリティガイドラインを遵守すること。
- APIキーの管理: コードにハードコードせず、環境変数で管理
- 入力検証: ユーザー入力を必ずバリデーション
- 依存パッケージ: 定期的に
npm auditで脆弱性チェック - 権限の最小化: 必要最小限の権限のみ要求
- ログ出力: 機密情報をログに出力しない
参考リンク
- Clawdbot Skill開発ガイド: https://docs.clawd.bot/skills/development
- ClawdHub リポジトリ: https://github.com/clawdbot/clawdhub-skills
- Skill Creator GitHub: https://github.com/clawdbot/skill-creator
- Clawdbot公式ドキュメント: https://docs.clawd.bot/
本記事の情報は2026年2月14日時点のものです。各サービスの機能や仕様は変更される可能性があります。最新情報は各公式サイトをご確認ください。
関連記事
BlueBubbles Skill - ClawdbotでiMessageを統合
Clawdbot向けBlueBubbles Skillを利用して、Apple iMessageおよびSMS経由でのメッセージ送受信を実現する方法を解説します。
ClawdHub Skill - Clawdbotスキル管理を効率化
ClawdHub CLIを利用して、Clawdbotスキルの検索、インストール、更新、公開を効率化する方法を解説します。
Gemini Skill - ClawdbotでGoogle Gemini APIを活用
Clawdbot向けGemini Skillを利用して、Google Gemini APIをワンショットQ&A、要約、生成タスクに活用する方法を解説します。
人気記事
ChatGPT(OpenAI)とClaude(Anthropic)の機能比較 2026年版。コーディング・長文解析・コスト・API料金の違いを検証
ChatGPT(GPT-4o/o3)とClaude(Sonnet 4.6/Opus 4.5)を2026年時点の最新情報で比較する。コーディング能力、長文処理、日本語品質、API料金、無料プランの違いをSWE-benchなどのベンチマーク結果とともに解説する。
【2026年2月20日 所感】「AIがコードを書く」は仮説から現実になった——しかし私たちはその意味をまだ消化できていない
2026年2月20日に観測したコーディングエージェント関連ニュースの総括と所感。Anthropicの自律性研究、cmux、MJ Rathbunのエージェント事故、HN「外骨格 vs チーム」論争、Stripe Minions週1000件PR、Taalas 17k tokens/sec——朝から夜までの流れを通じて見えてきた「AIがコードを書く時代」の実相を考察する。
868のスキルをnpx 1コマンドで——「Antigravity Awesome Skills」が主要AIコーディングエージェントの共通スキル基盤になりつつある
Claude Code・Gemini CLI・Codex CLI・Cursor・GitHub Copilotなど主要AIコーディングアシスタントを横断する868以上のスキルライブラリ「Antigravity Awesome Skills」(v5.4.0)を詳細分析。Anthropic・Vercel・OpenAI・Supabase・Microsoftの公式スキルを統合した設計思想、ロール別バンドル・ワークフロー機能、SKILL.mdによる相互運用性のアーキテクチャを解説する。
最新記事
AIエージェント間通信の標準化競争が始まる——AquaとAgent Semantic Protocolが同日登場
2026年2月23日、Hacker Newsに2つのAIエージェント通信プロジェクトが同日掲載された。Go製CLI「Aqua」とセマンティックルーティングを実装する「Agent Semantic Protocol」は、MCPが解決できないP2P・非同期通信の課題に取り組む。
Claude Sonnet 4.6、無料・Proプランのデフォルトモデルに——社内テストでOpus 4.5を59%の確率で上回る
Anthropicは2026年2月17日にリリースしたClaude Sonnet 4.6を、claude.aiの無料・Proプランのデフォルトモデルに設定した。価格はSonnet 4.5と同額の$3/$15 per 1Mトークン。社内評価ではコーディングエージェント用途でOpus 4.5を上回る結果が出ている。
GoogleがOpenClaw経由のGemini利用ユーザーのアカウントを永久停止——月額$250請求継続のまま
2026年2月23日、Hacker Newsで140pt/107コメントを集めたレポートによると、GoogleはOpenClaw(サードパーティクライアント)経由でGeminiを使用していたGoogle AI Pro/Ultraユーザーを予告なしに永久停止した。技術的・経済的背景を整理する。