POST /v1/skills
新しい Skill リソースをアップロードして作成します。Skill の内容は .zip 圧縮ファイル形式でアップロードする必要があり、multipart/form-data エンコーディングを使用します。
ヘッダー
| ヘッダー | 必須 | 説明 |
|---|---|---|
| Authorization | はい | Bearer $QODER_PAT |
| Content-Type | いいえ | curl -F により自動的に multipart/form-data に設定されるため、手動指定不要 |
リクエストボディ(multipart/form-data)
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
file | file | はい | Skill 内容の .zip 圧縮ファイル(zip 形式必須) |
name | string | いいえ | Skill 名(指定しない場合、zip 内 SKILL.md の frontmatter から読み取り) |
type | string | いいえ | Skill タイプ、値:custom、prebuilt(デフォルト custom) |
description | string | いいえ | Skill の説明 |
zip ファイル構造
圧縮ファイルにはSKILL.md ファイルを含める必要があり、形式は以下のとおりです:
リクエスト例
レスポンス例
HTTP 201 Createdレスポンスフィールド
| フィールド | 型 | 説明 |
|---|---|---|
id | string | Skill 一意識別子、形式 skill_* |
type | string | リソースタイプ、固定値 "skill" |
name | string | Skill 名 |
description | string | Skill の説明 |
skill_type | string | Skill タイプ:custom または prebuilt |
status | string | 状態:active |
version | integer | 現在のバージョン番号(1 から開始) |
content_size | integer | zip ファイル内容サイズ(バイト) |
content_sha256 | string | 内容の SHA-256 ハッシュ値 |
metadata | object | カスタムメタデータ |
created_at | string | 作成時刻(ISO 8601) |
updated_at | string | 最終更新時刻(ISO 8601) |
エラーレスポンス
| HTTP | type | 説明 |
|---|---|---|
| 400 | invalid_request_error | 非 multipart リクエスト: "Invalid multipart form or request too large." |
| 400 | invalid_request_error | file フィールド欠落: "Field 'file' is required." |
| 400 | invalid_request_error | 非 zip 形式: "Only .zip files are accepted." |
| 401 | TOKEN_INVALID | 認証トークンが欠落または無効 |
注意事項
- 同名の Skill 作成が許可されます(システムは名前の一意性を強制しません)
- form に
nameを提供しない場合、システムは zip 内のSKILL.mdfrontmatter から読み取ります - フォームで
descriptionを指定しない場合、システムは zip 内のSKILL.mdfrontmatter から読み取ります - フォームと frontmatter の両方に
nameまたはdescriptionがある場合、SKILL.md frontmatter の値が優先されます - 初期バージョン番号は 1 です
- JSON Content-Type はサポートされず、
multipart/form-dataが必須です