Skip to content

スキル

VJSPは組み込みのエージェントスキルを特徴としており、ドメイン知識ベースとワークフローを通じてAIエージェントの能力を拡張する軽量なオープンスタンダードです。

エージェントスキルの定義

エージェントスキルは、AIエージェントが呼び出すためのドメイン専門知識、新機能、再利用可能なワークフローをカプセル化したコンテナです。そのコア構造はSKILL.mdファイルを含むフォルダで、メタデータと命令セットを通じて特定タスクを実行するプロセスを定義します。

この設計はエージェントの操作効率を確保しつつ、オンデマンドでのコンテキスト取得をサポートします。タスクシナリオが機能モジュールの記述と一致する場合、エージェントは完全な命令を読み取り実行し、必要に応じて関連ファイルをロードしたり埋め込みコードを実行します。

コアアドバンテージ

  • 自己文書化: 開発者やユーザーはSKILL.mdファイルを直接読むことでモジュール機能と使用シナリオを理解でき、監査や反復最適化が容易です。

  • クロスプラットフォーム互換性: エージェントスキル仕様に従って開発されたモジュールは、この標準と互換性のあるすべてのエージェントシステムで実行可能です。

  • 高い拡張性: モジュールの複雑さは柔軟で、単純なテキスト命令から統合スクリプト、テンプレート、参考資料まで対応します。

  • 容易な共有: モジュールはポータブルで、異なるプロジェクトや開発者間で迅速に共有できます。

VJSPにおけるスキル実行機構

スキルは2種類に分類されます:

  • 汎用スキル: すべての動作モードで呼び出し可能
  • モード固有スキル: 指定モード(例:コード、アーキテクト)でのみロード

完全なスキル実行フローは以下の通りです:

  1. 検出フェーズ: 初期化中にVJSPが指定ディレクトリを自動スキャン
  2. 活性化フェーズ: 対象動作モード開始時に関連機能モジュールがシステムプロンプトに組み込まれる
  3. 実行フェーズ: AIエージェントが機能モジュールで定義された操作命令を一致タスクに対して実行

スキル保存パス

スキルはマルチパス読み込みをサポートし、個人用モジュールとプロジェクトレベルのカスタム命令を同時設定可能です。

グローバルスキル(ユーザーレベル)

グローバルスキルはユーザーのホームディレクトリ下.vjspフォルダに保存されます:

  • macOS/Linux: ~/.vjsp/skills/
  • Windows: \Users<yourUser>.vjsp\

ディレクトリ構造例:

plaintext
~/.vjsp/
├── skills/                    # 汎用スキル(全モード有効)
│   └── my-skill/
│   │   └── SKILL.md
│   └── another-skill/
│       └── SKILL.md
├── skills-code/              # コードモード専用スキル
│   └── refactoring/
│       └── SKILL.md
└── skills-architect/         # アーキテクトモード専用スキル
    └── system-design/
        └── SKILL.md

プロジェクトスキル(ワークスペースレベル)

プロジェクトスキルはプロジェクトルートの.vjsp/skills/フォルダに保存されます:

plaintext
your-project/
└── .vjsp/
    ├── skills/               # プロジェクト汎用スキル
    │   └── project-conventions/
    │       └── SKILL.md
    └── skills-code/          # コードモード専用スキル
        └── linting-rules/
            └── SKILL.md

モード固有スキルの作成

特定モードでのみ有効なスキルを作成するには、以下のコマンドでディレクトリを作成します:

bash
# コードモード専用スキル作成
mkdir -p ~/.vjsp/skills-code/typescript-patterns

# アーキテクトモード専用スキル作成
mkdir -p ~/.vjsp/skills-architect/microservices

ディレクトリ命名規則:skills-{mode-slug}{mode-slug}はシステム定義モードID(例:code, architect, ask, debug)と一致する必要があります。

優先順位とオーバーライド

同名スキルが複数存在する場合、VJSPは以下の優先順位でロードします:

  1. プロジェクトスキル > グローバルスキル: 同名スキルはプロジェクトレベルがユーザーレベルを上書き
  2. モード固有スキル > 汎用スキル: コードモードではskills-code/ディレクトリ内スキルがskills/内同名汎用スキルを上書き

これらの規則に基づき、開発者は柔軟な設定を実現できます:

  • 個人の日常開発ニーズを満たすグローバルスキル定義
  • 特定プロジェクトでグローバル設定をプロジェクトスキルで上書き
  • 異なる作業モード用に差別化機能をカスタマイズ

スキルロードタイミング

スキルスキャンとロード操作は以下のシナリオでトリガーされます:

  • IDE起動時
  • IDEウィンドウ再読み込み時(例:VS CodeショートカットCmd+Shift+P → "Developer: Reload Window"実行)

システムはスキルディレクトリ内SKILL.mdファイルの変更をリアルタイム監視しますが、変更を反映させる最も確実な方法はIDEまたはVJSPプラグインの再読み込みです。

⚠️

スキル追加/変更後は、変更を反映させるためにIDEの再読み込みが必要です。

シンボリックリンクの使用

複数デバイス間または中央コードリポジトリでスキルを共有するため、シンボリックリンク(Symlink)を作成可能です。シンボリックリンク使用時は注意:スキルのnameフィールドはターゲットディレクトリ名ではなく、シンボリックリンク自体の名前に一致する必要があります。

SKILL.mdファイル形式

SKILL.mdファイルはYAML front matter + Markdown命令コンテンツの組み合わせ形式を採用します:

markdown
---
name: my-skill-name
description: スキル機能と適用シナリオの簡潔な説明
---

# 操作命令
AIエージェントの詳細実行手順をここに記述

この命令は以下の条件でシステムプロンプトに含まれます:
1.  スキル保存パスが有効でシステムにより正常検出された場合
2.  現在の作業モードがスキルと一致する場合(またはスキルが汎用)

## 使用例
例、仕様、コードスニペット等の補足コンテンツをここに追加

Front Matterフィールド説明

エージェントスキル仕様に従い、front matterは以下のフィールドをサポートします:

フィールド名必須説明
nameはい最大64文字、小文字/数字/ハイフンのみ、ハイフン開始/終了不可
descriptionはい最大1024文字、スキル機能と適用シナリオの説明
licenseいいえライセンス名、または組み込みライセンスファイルへのパス
compatibilityいいえ実行環境要件(対象製品、システム依存、ネットワークアクセス権限等)
metadataいいえ追加メタデータ保存用カスタムキーバリューペア

オプションフィールド使用例

markdown
---
name: pdf-processing
description: PDFファイルのテキスト抽出、表認識、フォーム入力、文書結合を実装
license: Apache-2.0
metadata:
    author: example-org
    version: 1.0.0
---

## テキスト抽出方法
1.  pdfplumberライブラリを使用したテキスト抽出……

## フォーム入力手順
……

名前一致規則

VJSPでは、nameフィールドはスキルが存在するフォルダ名と完全一致する必要があります。

✅ 正しい例:

plaintext
skills/
└── frontend-design/
    └── SKILL.md  # name: frontend-design

❌ 誤った例:

plaintext
skills/
└── frontend-design/
    └── SKILL.md  # name: my-frontend-skill (名前不一致!)

オプション組み込みリソース

SKILL.mdはスキルディレクトリ内で唯一必須のファイルです。必要に応じて以下のディレクトリを追加しスキル機能を強化できます:

plaintext
my-skill/
├── SKILL.md           # 必須:命令とメタデータ保存
├── scripts/           # オプション:実行可能コードスクリプト保存
├── references/        # オプション:参考文書保存
└── assets/            # オプション:テンプレート、リソースファイル等保存

これらの追加リソースはスキル命令内で直接参照可能で、エージェントが参考文書を読んだりスクリプトを実行したり、複雑操作でテンプレートを呼び出すことをサポートします。

スキル作成例

  1. スキルディレクトリ作成
bash
mkdir -p ~/.vjsp/skills/api-design
  1. SKILL.mdファイル作成
markdown
---
name: api-design
description: REST API設計のベストプラクティスと標準を提供
---

# API設計仕様

REST API設計時は以下の規約に従います:

## URL構造仕様
- リソースパスは複数形名詞:`/users`, `/orders`
- 複数語リソース名はケバブケース:`/order-items`
- 関連リソースはネスト構造:`/users/{id}/orders`

## HTTPメソッド使用仕様
- GET:リソース照会
- POST:新規リソース作成
- PUT:リソース完全更新
- PATCH:リソース部分更新
- DELETE:リソース削除

## 応答ステータスコード仕様
- 200:リクエスト成功
- 201:リソース作成成功
- 400:無効リクエスト
- 404:リソース未検出
- 500:内部サーバーエラー
  1. IDE再読み込みでスキルをロード

これらの手順完了後、このスキルは全動作モードで有効になります。

トラブルシューティング

スキルがロードされない?

  1. 出力パネル確認: "View → Output"を開き、ドロップダウンから"VJSP"を選択し、スキル関連エラーログを確認。

  2. front matter検証: nameフィールドが正しく設定されフォルダ名と完全一致するか、descriptionフィールドが存在するかを確認。

  3. IDE再読み込み: スキルはソフト起動時にロードされるため、ショートカットCmd+Shift+P → "Developer: Reload Window"実行で再読み込み可能。

  4. ファイルパス確認: SKILL.mdファイルがスキルディレクトリ直下に配置され(多階層ネストなし)、正規パスにあることを確認。

一般的なエラーと解決策

エラーメッセージ原因解決策
"missing required 'name' field"front matterにnameフィールド欠如name: your-skill-name設定を追加
"name doesn't match directory"front matterのnameフィールドがフォルダ名と不一致nameフィールドをフォルダ名と完全一致するよう修正
スキルが表示されないディレクトリ構造が仕様に非準拠パスがskills/skill-name/SKILL.md形式かを確認

関連ドキュメントリンク

カスタムモード - 特定スキルを呼び出せるカスタム作業モード作成

カスタム命令 - グローバル命令とスキルレベル命令の違いと設定方法

カスタムルール - スキル機能を補完するプロジェクトレベルルール設定