sync
Installation
SKILL.md
概要
ローカルにインストールされているスキルと ~/.config/harness/manifest.json の内容を比較し、manifest に未登録のスキルをユーザーに提示して追加を提案する。
手順
1. インストール済みスキルを取得する
以下のコマンドを実行してインストール済みスキルの一覧を取得する:
npx skills ls --json
npx skills ls -g --json
両コマンドの結果をマージしてインストール済みスキルの完全なリストを作成する。
2. manifest を読み込む
~/.config/harness/manifest.json を読み込む。
ファイルが存在しない場合:
- 以下の内容で新規作成する:
{ "skills": {}, "profiles": {} }
3. 未登録スキルを特定する
インストール済みスキルのリストと manifest の skills セクションを比較し、manifest に登録されていないスキルを特定する。
未登録スキルが存在しない場合:
- 「すべてのスキルは manifest に登録済みです」と伝えて終了する。
4. 各未登録スキルの情報を収集する
未登録スキルごとに以下を行う:
- そのスキルの
SKILL.mdを読み込んで description を確認する - description の内容からユーザーへの適用条件(condition)を推論する
- 例: "React コンポーネントのレビュー" → condition: "React を使っているプロジェクト"
- 例: "git commit を実行" → condition: "always"
- 条件が判断できない場合は condition を空文字列にしておく
5. ユーザーに確認を求める
各未登録スキルについて以下の情報を提示し、manifest への追加を確認する:
以下のスキルが manifest に登録されていません。追加しますか?
1. <name>
- source: <source>
- description: <description>
- 推奨 condition: <condition>
追加する / スキップ / condition を変更する
ユーザーが「condition を変更する」を選択した場合は、新しい condition の入力を求める。
6. manifest を更新する
ユーザーが追加を確認したスキルを manifest の skills セクションに追加する。
追加形式:
"<name>": {
"source": "<source>",
"condition": "<condition>"
}
更新後の manifest を ~/.config/harness/manifest.json に書き込む。
7. サマリーを表示する
処理結果をまとめて表示する:
## sync 完了
追加したスキル (<追加数> 件):
- <name> (condition: <condition>)
スキップしたスキル (<スキップ数> 件):
- <name>
Related skills