もくじを開く4.2Skills

PART 4事業の知識と能力を育てる4.2

Skills — 能力の正本と改善履歴

Team・Agent・Plugin・Platformのskillがどこから来て、どの順でSessionへ投影され、Skill Ledgerで利用とfeedbackをどう改善につなげるか。Discoverからの導入とSkill単体の公開も扱う。

skillはagentが繰り返し使う能力・手順であり、正本はGit repo内の<skill-name>/SKILL.mdである。このページは「skillをどこに置くか」「同名なら何が使われるか」「実際に使われたかをどう改善へつなぐか」の正本である。agent repo自体の構造とpush後の反映はagentsを先に読む。

4つのsource

source正本用途
TeamSessionのworkspace repoにgit管理された.agents/skills/または.claude/skills/そのrepoで働く全agentに共通する手順
Agentagent repoの.agents/skills/。.claude/skills/もClaude互換または既存assetのsourceとして読み込むagent自身がprojectをまたいで持ち回る能力。同名時は.agents/skills/を採用する
Pluginagent repoの.agents/plugins/<name>/に追加したPluginのskillDiscoverから追加した束。追加手順はDiscover
PlatformaachatがSessionへ提供するskill(aachat-project、aachat-self-improvement、aachat-brainstorm、aachat-mindmapなど)aachatのproject、documents、Ask等を正しく操作する契約

各skillにはSKILL.mdが必要で、通常fileのUTF-8 textとしてgit管理する。symlinkや特殊fileを含むskillは投影できない。agent repo直下のskills/は読み込まれない(ホストのログに警告が出る。.agents/skills/へ移す)。

投影と優先順位

Session開始時、各sourceのskillは、そのSessionのRuntimeのskill置き場へ投影される。Claudeは.claude/skills/、Codexは.agents/skills/である。

workspace repoのTeam skillは、Runtimeの置き場と違う側にあっても投影される。たとえばClaudeのSessionでも、workspace repoの.agents/skills/*が.claude/skills/に入る。対象は、git管理された実directoryで、通常fileのSKILL.mdを持つものだけである。workspace repo内の両方に同名skillがあれば、Runtime自身の置き場の側が優先され、repoが管理しているファイルは上書きされない。

同名skillがあるときの結果は次のとおりである。

衝突結果
Team skill と Agent / Plugin skillTeam skillが優先(Agent側はそのSessionでは使われない)
Team skill と Platform skillsetup error。Sessionは起動しない
Agent skill と Platform skillPlatform skillが優先。SessionはPlatform版で開始する
Plugin skill と Agent / Platform skillAgent / Platform側が優先。Plugin側は読み込まれない
Plugin同士Plugin directory名の辞書順で先のものが優先

SKILL.mdがないagent skill directoryもsetup errorになる。source別のcollisionと回復手順はtroubleshooting。以前のplatform skill名(aachat-session、aachat-askなど)を使ったagent skillとplugin skillは投影されない。

aachat initがrepoに書くaachat skillはPlatform名ではないので、他のworkspace skillと同じに投影される。Sessionの中では使わないことは、そのSKILL.md自身が述べる。

repoが正本なので、skillを変えたらcommit / pushし、新しいSessionを起動する。稼働中Sessionへのhot reloadはない。

Skill Ledger

Skill Ledgerは、一覧を開いたときに確認したrepositoryの保存一覧と、Sessionで観測した利用・feedbackの履歴を分けて表示する。WebUIでは、AgentのプロフィールのSkillsタブ(agents)と、Team全体のSkills画面(/t/<team>/skills)で見る。Teamのサイドバーには Skills画面へのリンクはないため、URLを開くか、Skill詳細の戻るリンクから移動する。一覧を開くと接続済みrepositoryの現在版を自動確認する。Sessionの起動や手動更新は不要。

  • Team全体のSkills画面では、上部の Team / Agent / Platform でsourceを選ぶ。Agentを選んだときは、フィルターで対象Agentを選ぶ。ProjectからSkillsを開いた場合は、そのProjectのrepositoryとbranchが使われる
  • AgentのSkillsタブでは、名前・説明の検索と Agent レポジトリ / Team レポジトリ のチェックで絞り込む。両方のチェックを外すと0件になる。aaChat標準Skillは一覧と件数に含めない。詳細から戻っても検索条件を保持する
  • 初回はrepositoryの取得完了を待つ。再訪時にブラウザのキャッシュがあれば、前回分に Checking for updates… を添えて表示する。Agentのdefault branch、または選択したworkspaceのbranchを確認し、Skillとidentity.mdを同じcommitに揃える。確認済み0件、接続が必要、確認失敗は別の状態である
  • 一時的な失敗では Retry を表示し、同じ接続で確認できた前回分があればその旨を示して表示する。切断・失効時には旧本文を表示しない
  • Connect repository でGitHub App接続を保存する。Agentの接続は所有者、workspaceの接続はTeam owner/adminが行う。Project overrideも対象。通常の閲覧者は保存された接続を使い、都度OAuthは求められない。必要なら Configure GitHub App からApp設定を開く
  • 利用は直近30日の集計で、保存できたtoolの観測回数である。未使用の断定や全体の利用率ではない。未取得、観測欠損、観測済み0件を区別する。Agentの一覧には「集計期間 過去30日」と「12 回利用」の形式で表示する。Team全体の画面では「期間内の利用記録なし」「フィードバックあり」で絞り込める
  • 詳細は 内容 / フィードバック / 変更履歴 の3タブ。直接URLでも先に保存元を確認する。本文と追加ファイルは選択した版に揃え、版が変わった場合は一覧から開き直す。本文下の 取得バージョン でsource、branch、commitを確認する。旧Sessionの本文は履歴資料として区別して表示する
  • repositoryとcommitが確認できた本文の相対リンクは、同じcommitの参照先をGitHubの新しいタブで開く。ファイル一覧は画面内で切り替える。GitHubでの閲覧には、そのrepositoryへのアクセス権が必要
  • フィードバックは投稿者種別と本文、変更履歴は日時・内容ハッシュ・コミットを表示する。取得範囲は最新100イベントのため、表示範囲外の記録がある場合もある
  • 保存一覧の更新前でも、Sessionの利用記録とchat skill feedbackは保存できる

AgentのSkillsタブは、通常はAgent repositoryと現在のTeam repositoryを確認する。Projectから開いた場合は、そのProjectが選択するworkspace repositoryを使う。Teamのスキル候補直下にあるsymlinkは除外し、両方のスキル配置先の実ディレクトリは表示する。これはrepositoryの一覧であり、特定のSessionへ注入されたスキルの一覧ではない。Agent repositoryの読取承認はAgentの実行用接続とは別に必要で、ownerの承認待ちでも取得できたTeamスキルは表示する。

feedbackと改善Session

Skillの詳細からfeedback(内容、ファイル・手順、改善案)を保存できる。Session内のagentはchat skill feedback <skill-name> "<内容>"で記録する。同名候補があるときは、エラーに示される指定を使う。

保存済みのフィードバックは詳細画面の「フィードバック」から「さらに読み込む」で遡れます。Agent は本人Session内で chat skill feedback-list <skill-id> --team <slug> を使い、next_page で続きを、detail_read で元Sessionを読みます。各読取は本人Sessionの現在のProject閲覧権限と受理済みsourceに従います。

Platform以外のskillでは、詳細から改善Sessionを開始できる。

  1. フィードバックを書く から必須の「困ったこと・改善したいこと」を入力する。通常は フィードバックを保存 だけを行う
  2. 保存したフィードバックで改善を依頼する を選び、Project・担当Agentを選択して 保存して改善Sessionを開始 を押す。保存後に開始だけ失敗した場合は 改善Sessionの開始を再試行 で開始だけをやり直す
  3. 改善Sessionは対象のrepository・root・branch・commitを固定して始まる。同じ対象の再送は同じSessionに戻る

確認済みの版(commit)がないskillでは開始できない。先にSkills一覧を開き、接続や取得のエラーを解消する。

Platform skillはread-onlyである。改善案はfeedbackとしてaachat側へ渡し、project repoやagent repoで直接編集しない。

改善の基本ループ

  1. Skill Ledgerの利用範囲とfeedbackを読み、手順を見直す候補を選ぶ
  2. Team固有ならworkspace repo、agent固有ならAA_AGENT_DIRのagent repoを編集する
  3. testしてcommit / pushする
  4. 新しいSessionで使い、利用とfeedbackを確認する。repositoryの現在版はAgentのSkillsタブを開き直して確認する

agentに最近の仕事から新しいSkillを提案させるには、Agentのプロフィールの Improve agent を使う(agents)。

補助コマンドは.agents/skills/へ追加するaachat skills add <skill-name>とchat skill feedback <skill-name> ...。syntaxはcli。

Discoverから導入して記録する

Discoverの スキル は公開カタログで、Skill Ledgerとは別物である。先に公開Skillの取得元ファイルと前提条件を読む。Skillの詳細で 自分のエージェントに追加 を選び、repositoryと接続済みruntimeを持つ自分のAgentを選ぶ。準備用の会話を確認し、明示的に導入を承認する。対象選択と利用できない場合の経路はDiscoverを参照する。

導入ではSkillと関連ファイルをAgent repoの.agents/skills/<skill-name>/へコピー・適応し、検証・commit・pushする。同名Skillがあれば、既存の有用な動作を上書きする前に差分と適応方法を確認する。依存の宣言だけではpackageのインストールやsecretの許可は行われないため、Environmentに従って準備する。

push成功後に使うカタログ操作は次である。

bash
aachat skill install <skill-catalog-id> --agent <agent-name>

導入フローで得た実際のカタログUUIDと対象Agent名を使う。これは installation receipt(導入記録) を保存する操作である。ダウンロード、commitのpush、Session再起動、利用検証は行わない。同じAgentへの登録を繰り返すと記録済みと返る。登録できるのは対象Agentのownerだけである。

操作行うこと完了の確認
aachat skills add <skill-name>外部skills installerで現在のディレクトリの.agents/skills/(または--target)へsourceを配置ファイルを確認・検証し、意図したrepoへcommit・push
aachat skill install <skill-catalog-id> --agent <agent-name>所有Agentへのカタログ導入を記録登録結果。runtimeでの利用の証拠ではない
Skill Ledgerの利用 / feedback投影されたSkillを観測し、利用や改善feedbackを記録新しいSessionでsource commitと実際の利用を確認

ファイルのpush後に登録だけ失敗した場合は、認証、ownership、カタログIDを直して登録だけ再試行する。receiptがあるのにSessionにSkillがなければ、pushしたcommit、新規Sessionの開始時点、sourceの優先順位を確認する。Team skillが導入したAgent skillを隠す場合がある。

Skillを単体で公開する

AgentをDiscoverへ公開せず、所有するSkillだけを公開できる。元AgentのGitHub repositoryはprivateのままで構わない。AgentのプロフィールのSkillsタブの スキルの取得元 を開き、そのAgentが所有するSkillの Publish を選ぶか、Discoverの公開管理で Publish something new を選び、種類で スキル を選ぶ。repositoryと接続済みruntimeがあるAgentが、対象Skillと必要ファイルだけを別の公開用repositoryへ準備する。公開内容を確認してから公開する。Team・Platform・Pluginから提供されたSkillには、この公開操作はない。

Skill単体の公開にはAgent用の.aachat/public.yamlや公開プロフィールは不要である。公開先に.agents/skills/<skill-name>/SKILL.mdと関連ファイルを置き、下記metadataのaachat.discovery.listedを"true"にする。準備済みrepositoryで使うCLIはaachat skill publish .agents/skills/<skill-name> --agent <agent-name>である。privateの準備と明示的なpublic化の手順はDiscoverを参照する。

公開管理の一覧から対象Skillを開き、本文・同梱ファイルの確認、同期、掲載停止ができる。掲載停止後も一覧には残り、中身はGitHubで確認する。元Agentの掲載停止や公開先変更では、単体公開したSkillは削除されない。同期は公開repositoryの変更をカタログへ反映する操作であり、導入済みAgentへ更新を配布する操作ではない。

公開用metadataとAgent同梱Skill

Skillの公開用metadataに求められる条件は、公開の種類で異なる。

場面metadataの扱い
Skill単体の公開通常のUTF-8ファイルで、次の5つの日英・掲載metadataをすべて用意する。2つのheadlineと2つのdescriptionは空にできず、aachat.discovery.listedは"true"にする
Agentの公開同梱Skillにfrontmatterや日英metadataがなくてもAgentを公開できる。Skillのファイルは公開repositoryに含まれる
同梱SkillのSkillカタログ掲載Agentの公開・同期時に、公開repositoryの.agents/skills/にあるSkillが読み込まれる。metadataが不正なSkill(値が文字列でない、aachat.discovery.listedが"true"/"false"以外など)はSkillカタログへの登録から外れ、Agentの公開は続く。headlineやdescriptionがないときは、Skillのname・descriptionなどで代わりに表示する

.agents/skills/source-review/SKILL.mdの内容全体の例である。

yaml
---
name: source-review
description: Review public sources and record citations.
metadata:
  aachat.headline.ja: 公開情報を出典付きで整理する
  aachat.headline.en: Review public sources with citations
  aachat.description.ja: 公開情報を比較し、事実と推定を分けて報告する手順。
  aachat.description.en: Compare public sources and separate facts from estimates.
  aachat.discovery.listed: "true"
---

# Source review

Read the supplied public sources. Record each source URL, distinguish facts
from estimates, and write a referenced summary. Do not contact third parties.

Agent同梱の場合、aachat.discovery.listedを"true"にしたSkillだけがDiscoverに単体掲載される。"false"や指定なしは単体掲載しない扱いだが、ファイルはAgent repositoryとともに公開されたままである。Skill単体の公開では"true"が必要である。カタログの選択であり、アクセス制御ではない。日英metadataはDiscoverの説明で、Skillの指示本文を自動翻訳するものでもない。

人間ownerが公開する前に、repositoryのライセンス、private情報、関連ファイルを確認する。公開プロフィール、明示的なpublic化、同期、AgentとSkillの掲載停止はDiscoverに従う。カタログのlineageは取得元との関係を示し、既存Agentへupstream更新を自動導入しない。

関連ページ

  • agent repoと変更の反映、Improve agent: agents
  • Sessionへの投影: sessions
  • collisionとsetup failure: troubleshooting
  • command syntax: cli
  • 公開カタログ、Plugin、公開手順: Discover