# Skills スキルはエージェントが参照する**手順書・知識ベース**です。Claude Code / Codex / gstack と互換のフォーマット(Markdown + YAML frontmatter)で記述し、エージェントが必要に応じて `ReadSkill` で読み込みます。 ## Piece との違い | | Piece | Skill | |---|-------|-------| | 役割 | **実行テンプレート** — ツール権限・遷移フローを制御 | **参照知識** — 手順・規約・ガイドを提供 | | フォーマット | YAML(MAESTRO 固有) | Markdown(Claude Code / Codex 互換) | | 選択 | piece-classifier が自動選択 | エージェントが ReadSkill で任意に参照 | | 実行制御 | `allowed_tools` でツールを制限 | 制御なし(エージェントの判断に委ねる) | **判断基準:** - ツールの許可・禁止や movement フローを定義したい → **Piece** - 手順書・コーディング規約・デバッグガイドをエージェントに参照させたい → **Skill** ## スキルの構造 ### 単一ファイル形式 ``` data/skills/my-workflow.md ``` ### ディレクトリ形式(スクリプト同梱) ``` data/skills/tdd/ SKILL.md ← 本体(frontmatter + 手順) scripts/ ← 実行可能スクリプト(任意) references/ ← 参照ドキュメント(任意) ``` ### Frontmatter ```yaml --- name: tdd description: テスト駆動開発の手順 triggers: - テスト - 新機能 --- ``` - `name`(必須): `[a-z0-9_-]` のみ - `description`(必須): 1 行の説明 - `triggers`(任意): 関連キーワード ## スコープ | スコープ | 場所 | 書き込み | 読み取り | |---------|------|---------|---------| | system | `data/skills/` | admin のみ | 全ユーザー | | user | `data/users/{userId}/skills/` | 本人のみ | 本人のみ | ユーザースキルがシステムスキルと同名の場合、ユーザースキルが優先されます。 ## インストール方法 ### UI から Settings → Skills タブで: - 「Install from URL」に Git リポジトリの HTTPS URL を入力 - 「+ New Skill」で手動作成 ### エージェント経由 ``` InstallSkill({ name: "my-skill", content: "...", scope: "user" }) InstallSkillFromDir({ sourcePath: "/workspace/output/skill-dir", name: "my-skill", scope: "user" }) ``` ### 手動 `data/skills/` または `data/users/{userId}/skills/` に `.md` ファイルまたはディレクトリを配置すると自動検出されます(60 秒のキャッシュ TTL)。 ## セキュリティ - インストール時にセキュリティスキャンが実行されます - `high` 重大度(prompt injection、他ユーザーリソース参照等)はインストールをブロック - `medium` 重大度(外部 URL、ネットワークコマンド等)は警告表示 - スクリプト実行は `bash_unrestricted: true` 時のみ可能(bwrap sandbox 内で隔離実行) ## エージェントからの利用 movement 開始時にスキルインデックス(名前 + 説明の一覧)がシステムプロンプトに自動注入されます。エージェントは `ReadSkill({ name: "tdd" })` で本文を取得し、指示に従って作業します。 ディレクトリ形式のスキルでは、レスポンスに sandbox 内パス(`/skills/tdd`)が含まれ、`bash /skills/tdd/scripts/run.sh` のようにスクリプトを実行できます。