team-skills について
team-skillsは、チームのAIディレクティブにあるスキルを一覧表示し、選択したスキルをエージェントのスキルディレクトリにインストールします。プロジェクトとチームのマニフェストを統合し、ブロック対象を除外してデフォルトおよび外部スキルを一括導入できます。
主な機能
- 01チームスキルの一覧表示
- 02プロジェクトとチームのマニフェスト統合
- 03名前指定または一括インストール
- 04導入済み・ブロック対象のスキップ
- 05外部スキルはHTTPS経由のみ取得
活用シーン
- 01利用可能なチームスキルと導入状況の確認
- 02エージェントへの指定スキルの導入
- 03初期設定後のデフォルトスキル一括導入
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tikalk/ adlc-team-skills --skill team-skillsインストール後、Claude Code で/team-skillsを入力して読み込まれたか確認します。
同梱ファイルscripts/bash/setup-team.shscripts/powershell/setup-team.ps1
詳細
team-skills
概要
チームの AI ディレクティブから利用可能なスキルを参照し、選択したスキルを現在のエージェントのスキルディレクトリにインストールします。--all を使うと、すべての default スキルと external スキルをまとめてインストールできます。スキルはマニフェストとの同期を保つため、元の名前(プレフィックスなし)でインストールされます。
使用する場面
- チームのスキルを参照、一覧表示、またはインストールするようユーザーから依頼されたとき。
- 入力でインストール対象のスキルが指定されたとき。
- チームで共有するスキルを追加して、エージェントの機能を拡張するとき。
- 初期設定後に
team-setupが/team-skills --allを実行するよう指示したとき。
$ARGUMENTS
基本的な手順
セットアップ
ファイル .adlc/init-options.json を直接読み込みます。場所を特定するために glob、find、その他のファイル検索ツールを使わないでください。検索ツールは、ドットで始まるパスのセグメントを黙ってスキップする可能性があります。現在の作業ディレクトリから、相対パス .adlc/init-options.json を指定して読み込みます。
読み込みに失敗した場合(ファイルが見つからない場合)は、親ディレクトリをたどり、../.adlc/init-options.json、次に ../../.adlc/init-options.json の順に読み込みます。最大 4 階層まで試し、最初に読み込みに成功した時点で停止します。
JSON から team_ai_directives フィールドを抽出します。
{
"team_ai_directives": "/path/to/team-ai-directives"
}
team_ai_directives が設定されていない場合は、処理を停止します。
Team AI directives not configured.
Run: /team-setup
ヘルパースクリプト(team-setup 内の正式なスクリプト。スキルディレクトリからの相対パスで参照):
$(dirname "$0")/../team-setup/scripts/bash/team-helpers.sh --json$(Split-Path $PSCommandPath -Parent)/../team-setup/scripts/powershell/team-helpers.ps1 -Json
ステップ 1:スキルマニフェストを読む
{REPO_ROOT}/.skills.json({REPO_ROOT} はプロジェクトルート、つまり .adlc/ があるディレクトリを指します)と、{TEAM_AI_DIRECTIVES}/.skills.json(チームディレクティブのマニフェスト)を読み込みます。両方を統合し、プロジェクトルートのエントリを優先します。マニフェストの各セクション(スキーマ v2.0.0)を解析します。
| セクション | 説明 | --all でインストールするか |
|---|---|---|
default | ローカルスキル(skills/{name}/ 内)。セットアップ時に自動インストールされます | はい |
external | URL から取得するリモートスキル。必要に応じてインストールします | はい |
blocked | 拒否対象。決してインストールしてはいけません | いいえ |
ステップ 2:利用可能なスキルを表示する
スキルをセクションごとにまとめて表示します。各スキルについて、次の情報を示します。
- 名前(キー。ローカルスキルなら
github-actions、外部スキルならreact-best-practicesなど) - 説明
- インストール済みかどうか(エージェントのスキルディレクトリを確認)
形式:
Team Skills from {TEAM_AI_DIRECTIVES}
Default (local, installed by --all):
[installed] dbt-template - DBT project templates and best practices
[available] github-actions - GitHub Actions CI/CD pipeline patterns
[available] helm-charts - Helm chart patterns for Kubernetes
[available] crossplane - Crossplane Composition and XRD patterns
[available] external-secrets - External Secrets Operator patterns
[available] gke-workload-identity - GKE Workload Identity patterns
External (remote, installed by --all):
[available] react-best-practices - React performance optimization
[available] web-design-guidelines - Web interface best practices
ステップ 3:選択したスキルをインストールする
引数に応じてインストール対象を決定します。
--all:すべてのdefaultスキルとすべてのexternalスキルをインストールします。blockedに含まれるスキルと、すでにインストール済みのスキルはスキップします。- スキル名:指定されたスキルを直接インストールします。
- 入力なし:インストールするスキルをユーザーに尋ねます。
エージェントのスキルディレクトリを特定します。
.adlc/integration.jsonを読み込み、現在のエージェントを確認します。{agent_folder}/skills/をインストール先として使用します。
元の名前でインストールし、frontmatter の name は変更しません。
ローカルスキル(default リスト。名前は skills/{name}/ に対応)の場合:
{TEAM_AI_DIRECTIVES}/skills/{name}/SKILL.mdを特定します。SKILL.mdを{skills_dir}/{name}/SKILL.mdにコピーします。
外部スキル(external マップ。エントリには url があります)の場合:
- 最初に名前を
blockedと照合し、該当する場合は直ちに拒否します。 - エントリの
urlがhttps://で始まることを確認します。それ以外のスキーム(http://、file://、スキームのないパス)は拒否し、その旨を伝えます。 - URL とインストール先をユーザーに示し、ダウンロード前に確認を求めます(先にプレビューし、ネットワークから黙って取得しないでください)。
- エントリの
urlフィールドからSKILL.mdをダウンロードします。 {skills_dir}/{name}/SKILL.mdに保存します。- ダウンロードしたコンテンツを実行してはいけません。インストールではファイルのコピーのみを行います。
blocked に含まれるスキルは決してインストールしないでください。インストール先にすでに存在するスキルはスキップし、[installed] として報告します。
ステップ 4:確認する
Installed: github-actions
Location: .opencode/skills/github-actions/SKILL.md
Source: default (local:./skills/github-actions)
Notes
- デフォルトのスキルは
--allでインストールされます。通常は初期設定後にteam-setupから実行するか、いつでも手動で実行します。 - スキルは元の名前でインストールされます。
team-プレフィックスは付かないため、ディスク上の名前はマニフェストのキーと一致します。 blockedリストにあるスキルはインストールされません。- 外部スキルは、マニフェストに記載された URL から HTTPS 経由で取得されます。
よくある誤った判断
| 誤った判断 | それが誤りである理由 | 代わりに行うこと |
|---|---|---|
「インストールするスキルに team- プレフィックスを付けよう」 | ディスク上の名前がマニフェストのキーと異なり、検索に失敗します | 元の名前でインストールします。frontmatter の name は変更しません |
「検索ツールで .adlc/init-options.json が見つかる」 | glob/find はドットで始まるパス要素を黙ってスキップします | 正確な相対パスを直接読み取ります |
| 「ブロックされたスキルは、あくまで強い推奨にすぎない」 | blocked はインストール時に明示的に拒否されたことを意味します | ブロックされたスキルは決してインストールしません |
| 「デフォルトのスキルは、すでに別の場所で自動インストールされている」 | インストールするのは --all(team-setup 経由または手動)のみです | /team-skills --all を実行して、デフォルトのセットを導入します |
| 「プロジェクトルートのマニフェストをマージせずに済ませよう」 | プロジェクトのエントリーはチームのデフォルトを上書きすることを想定しています | 両方のマニフェストをマージします。競合する場合はプロジェクトルートを優先します |
要注意事項
- 正確なパスを読み取らず、glob、find、grep を使って
.adlc/init-options.jsonを検索する。 - スキルの名前を変更したり、インストール時に
team-プレフィックスを付けたりする — マニフェストと一致するよう、元の名前でインストールします。 blockedセクションに記載されたスキルをインストールする。- エージェントに設定されたスキルフォルダー以外のディレクトリにスキルを書き込む。
- 設定メッセージを表示して停止せず、未設定の
team_ai_directivesフィールドをそのままにして処理を進める。 - HTTPS 以外の URL から外部スキルを取得する。
検証
.adlc/init-options.jsonを検索ツールを使わずに直接読み取り、team_ai_directivesからパスを解決しました。{REPO_ROOT}/.skills.jsonと{TEAM_AI_DIRECTIVES}/.skills.jsonの両方をマージし、競合する場合はプロジェクトルートのエントリーを優先しました。- インストールされた各スキルは
{skills_dir}/{name}/SKILL.mdにあり、frontmatter のnameは元の名前(プレフィックスなし)です。 blockedセクションにあるスキルはインストールされていません。--allによって、すべてのdefaultおよびexternalスキルをインストールしました(blockedとインストール済みのものは除外)。- インストールした名前、ディスク上の場所、ソースを示す確認ブロックを出力しました。
設定
TEAM_AI_DIRECTIVES— チームの AI 指示へのパス(.adlc/init-options.jsonを上書きします)。.adlc/init-options.json—team_ai_directivesフィールドを含むプロジェクトレベルの設定ファイル。- デフォルトのフォールバック:プロジェクトルートからの相対パス
team-ai-directives/。 ../team-setup/scripts/bash/team-helpers.sh/../team-setup/scripts/powershell/team-helpers.ps1— パス解決に使用する共有スクリプト(正本はteam-setup)。
12-Factor との整合性
Factor XII(チームの能力)— チームのスキルカタログとインストールを管理します。