Agent Skills を管理するためのツール @stefafafan/skm を作成しました。
課題感
Agent Skills は基本的にはプロンプト集で、特定のディレクトリに保存するものですが、今後あらゆるサービスや人が Agent Skills を無尽蔵に公開していくと色々と管理について課題が出るんじゃないかともやもや思っていました。
.agents/skillsとか.claude/skillsにファイルをコピーして入れたりしていて、どのファイルがいつどこから入れたものかわからない- 更新があるかどうかも不明
- Skills の仕組みとしては、
nameとdescriptionの自然文をエージェントが読んで、発火すべきかどうかを判断しているそうだけど、命名規則とかがふわふわしているのが気になる
@stefafafan/skm でやってみたこと
npm におけるパッケージ管理と同じようなイメージで、 package.json や package-lock.json を真似して、 skills.json と skills.lock.json で管理するというふうにしてみました。
skm add stefafafan/skillsみたいにスキルを追加できる- スキルの実態はいままで通り
.agents/skillsとかに保存されるが、どのGitHub Repositoryから入れたものかとかがskills.jsonに記録されている
- スキルの実態はいままで通り
skm rename old-name new-nameみたいにスキルの名前を変更できる- 自分の好きな命名規則にスキルを揃えていける
- これは単にスキルのディレクトリ名と
nameメタデータを書き換えているのみ。もしスキル間で依存関係があるとしたら困るが..
その他思ったこと
- アイデアを思いついた後怒涛のAgentic Codingをしたことで一気に完成したけど、あまりコードの中身をわからないまま進めていてこれでいいんだろうかとなった
- あとから、リファクタリングを頼んだり、エッジケースの修正などを依頼した
- npm パッケージ今まで公開したことなかったので、公開のプロセスを体感できてよかった
- なぜか公開して即、定期的にダウンロードが来ているけどどういうことだろう..となった https://www.npmjs.com/package/@stefafafan/skm?activeTab=versions
- それらしい専用サイトも公開した https://getskm.dev/
- Codex と frontend-skill を使ったらこういう感じになった
- Cloudflare Workers と Astro で構成されています
- あとから気づいたけどやっぱり似たようなライブラリはもうあった
- https://github.com/pi0/skillman:
vercel-labs/skillsのラッパーで、skills.jsonで管理も同じアイデア。私がやってるような、コミットハッシュを記録したりrenameコマンドを用意したりとかはしてなさそう。 - https://github.com/reorx/skm: 名前が被ってしまった、こちらはグローバルなSkillの管理を意図しているもの。
skmとは違ってPython製。
- https://github.com/pi0/skillman: