skills リポジトリ運用ガイド
Bundle OKF 0.2 · 8 conceitos · Soli0222/skills
Open source Repository Open in the app JSON README (API)
About
# skills リポジトリ運用ガイド
このバンドルは、リポジトリへ skill を追加し、Codex と Claude Code へ安全に配置する人を対象にしている。
初めて触る場合は、まず[管理モデル](concepts/repository-model.md)を読み、続いて作業に合う playbook を選ぶ。
日常作業では、手順かコマンド一覧だけを参照すればよい。
# 最初に読む
* [管理モデル](concepts/repository-model.md) - 原本、依存宣言、導入済み実体、生成文書の関係。
* [自作 skill](concepts/local-skills.md) - リポジトリ内で保守する skill の管理単位。
* [配布 skill](concepts/external-skills.md) - gist と skills CLI 由来の skill を再現可能に管理する方法。
# 作業から探す
* [自作 skill を追加する](playbooks/add-local-skill.md) - `skills/<name>/` を作り、各エージェントへリンクする。
* [配布 skill を追加する](playbooks/add-external-skill.md) - 配布元を台帳へ登録し、導入して記録を確定する。
* [状態を検査して復旧する](playbooks/verify-and-recover.md) - dry-run、status、テストを使って差異を調べる。
# 参照資料
* [コマンド一覧](references/commands.md) - `install.sh` が公開する操作と書き込み範囲。
* [ファイル配置](references/layout.md) - リポジトリ内外のパスと役割。
# 問い合わせ先
このバンドルで判断できない場合は、リポジトリの Issue または通常のコードレビュー経路で確認する。
とくに、競合した実ディレクトリを `--force` で置換してよいかは、差分の所有者が判断する。
Details
- Kind
- OKF bundles
- Topic
- Developer tools
- Publisher
- soli0222
- Origin
- okf_github
- Category
- dados
- Version
- 0.2
- Last push
- 2026-09-05T15:04:59Z
- Repository state
- ativo
- Language
- Python
- Added
- 2026-09-08 22:10:17
- Updated
- 2026-09-08 22:10:17
- Origin id
Soli0222/skills:docs/index.md
README
# skills 自作 Agent Skill の原本を置くリポジトリ。 配布されている skill は実体を持たず、[`external/manifest.toml`](external/manifest.toml) に依存として記録する。 `package.json` と同じ考え方で、書いてあるものが「使うもの」、`install` で現実を宣言に合わせ、 `status` で現実が宣言とずれていないかを見る。「導入予定」のような中間状態は持たない。 [EXTERNAL.md](EXTERNAL.md) はそこから生成する読み物で、手では編集しない。 管理モデルと作業手順は、OKF 形式の[運用ガイド](docs/)から辿れる。 ## 自作 skill | skill | 概要 | | --- | --- | | [delegate-implementation](skills/delegate-implementation/) | 開発タスクを分割し、ネイティブのサブエージェントや外部CLIへ委譲・統合する。worktreeの要否を判断し、依頼に応じてPR・CI・mergeまで扱う | | [dependency-pr-release-summary](skills/dependency-pr-release-summary/) | Renovate などの依存更新 PR を、リポジトリ上の差分だけでなく上流アプリケーションのリリース影響まで含めて要約する | | [okf](skills/okf/) | Open Knowledge Format v0.2(YAML frontmatter を持つ Markdown のナレッジバンドル)の作成・検証・利用 | ## 配置 原本はこのリポジトリだけに置き、各エージェントの読み取り先へは symlink を張る。 ``` <repo>/skills/<name> 原本(git 管理下) ~/.agents/skills/<name> -> 原本 Codex などが読む ~/.claude/skills/<name> -> ../../.agents/skills/<name> Claude Code が読む ``` `~/.agents/skills` を経由させるのは、`npx skills add -g` で入れた配布 skill と同じ流儀に揃えるため。 これにより `~/.claude/skills` 配下は「symlink = どこかで管理されている」「実ディレクトリ = 野良」で判別できる。 なお `~/.agents/skills` 配下は、このリポジトリ由来のものが symlink、配布 skill が実ディレクトリになる。 判別規則が成り立つのは `~/.claude/skills` 配下だけである点に注意する。 ## 使い方 ```bash ./scripts/install.sh # dry-run。自作の symlink と配布の導入状況を出す ./scripts/install.sh --apply # 両方まとめて適用 ``` サブコマンドで片方だけ扱える。 ```bash ./scripts/install.sh link --apply # 自作: symlink だけ ./scripts/install.sh external status # 配布: 導入状況と pin・上流の一致 ./scripts/install.sh external install --apply ./scripts/install.sh external update --apply ./scripts/install.sh external add <url> # manifest に項目を足す ./scripts/install.sh docs # EXTERNAL.md を生成 ./scripts/install.sh docs --check # 生成物が manifest と食い違っていないか ``` `link` / `external install` / `external update` は `--apply` を付けない限り何も書き換えない。 名前を渡せばその skill だけを対象にできる。 `external add` は manifest に、`docs` は EXTERNAL.md に、それぞれ即座に書き込む。 ### 自作 skill(link) 冪等なので、原本を編集したあとに張り直す必要はない。リンクが壊れたり張り替えられたときだけ再実行する。 `skills/*/SKILL.md` があり、かつディレクトリ名と frontmatter の `name` が一致するものだけを対象にする。 リンク先に既存の実ディレクトリがある場合、内容・ファイル種別・実行ビットが原本と完全一致するときだけ、 `~/.skills-backup/<timestamp>/` へ退避したうえで symlink に置き換える。 一致しなければ `CONFLICT` として差分を表示し、何もせずに終了する(終了コード 1)。 差分を確認したうえで原本で上書きしてよければ `--force` を付ける。この場合も退避は行う。 管理対象にない skill には一切触れない。 ### 配布 skill(external) `external/manifest.toml` の `kind` で扱いが変わる。 | kind | install | update | | --- | --- | --- | | `gist` | pin した revision を取得して `~/.agents/skills/<name>/SKILL.md` に置き、`~/.claude/skills` から symlink を張る | 上流の最新 revision との差分を表示し、`--apply` で本体と manifest の pin を同時に更新する | | `skills-cli` | `npx skills add <repo> -g -a … --skill … -y` を呼ぶ | `npx skills update <name> -g -y` を呼び、前後の folder hash を比較する | `gist` は revision と SKILL.md の sha256 を pin するので、いつでも同じ内容を取り直せる。 `status --offline` はネットワークに出ず、手元のファイルをこの sha256 とだけ照合する。 `skills-cli` は導入と更新を CLI に任せる。ただし `~/.agents/.skill-lock.json` の `source` / `sourceUrl` / `skillPath` を台帳と照合するので、同名の別 skill が 入っていれば `CONFLICT` として終了コード 1 になる。 どちらの kind でも、`~/.agents/skills/<name>` の実体と `~/.claude/skills/<name>` の symlink を同じ規則で確かめる。symlink が消えたり別の場所を向いていれば `--apply` で張り直す。 上書きの前には `~/.skills-backup/<timestamp>/external/` へ退避する。 ### どこに何があるか | | 対応するもの | git | | --- | --- | --- | | `external/manifest.toml` | `package.json`(依存の宣言と pin) | 追跡する | | `~/.agents/skills/<name>` | `node_modules`(導入された実体) | repo の外 | | `~/.agents/.skill-lock.json` | `npx skills` が書く機械記録 | repo の外 | manifest には端末固有の値を入れない。`install` も `status` も manifest を書き換えない。 書き換えるのは、pin を進める `update --apply` と、項目を足す `add` だけで、 どちらも人が意図して打つコマンドである。 その結果 `EXTERNAL.md` は manifest だけから決まり、どの環境で生成しても同じものになる。 ## skill を追加する ### 自作 1. `skills/<name>/SKILL.md` を作る。frontmatter の `name` はディレクトリ名と一致させる 2. `./scripts/install.sh link --apply` ### 配布 1. `./scripts/install.sh external add <gist または GitHub の URL>` id と skill 名の重複は弾く 2. `external/manifest.toml` の `TODO` を埋める。ライセンスは gist のコメントも確認する 3. `./scripts/install.sh external install --apply`(gist なら sha256 もここで記録される) 4. `./scripts/install.sh docs` 使うのをやめるときは manifest から項目を消す。実体は消えないので、 `~/.agents/skills/<name>` は自分で消すか `npx skills remove` を使う。 ## テスト ```bash ./tests/run.sh ``` ネットワークには出ない。gist の取得先は `GIST_RAW_BASE` と `GITHUB_API_BASE` で ローカルのフィクスチャに差し替えている。 名前で絞り込める(`./tests/run.sh okf` など)。 okf validator のテストは PyYAML があるときだけ走り、無ければ skip する。