汎用Agent SkillsをGitHubで配布する — redamoon/skills と gh skill install

Posted on:2026-05-29

Skillsを入れればAIは賢くなるわけではない — ClaudeCampで学んだSkill活用術 で書いた通り、Skills が効くのは「AI が知らないことを教えるとき」だ。自分のブログ執筆や textlint の運用は、毎回プロンプトで説明するより手順として残した方がよい領域だった。

これまで、Zenn 向けの執筆ルールやはてなブログの記法、note の読書メモの型などは ~/.cursor/skills/~/.claude/skills/ にバラバラと置いていた。マシンを替えたり、チームメンバーに渡したりするとき、そのままでは共有できない。

そこで、普段使っている汎用 Skills を Git で管理するリポジトリ redamoon/skills を作った。GitHub CLI の gh skill install から取得できるようにし、v1.0.0 として公開済みだ。

https://github.com/redamoon/skills


何をまとめたか

リポジトリの中身は、ブログ執筆と技術ドキュメント向けの Skills 9 本だ。

スキル 用途
blog-workflow textlint・プラットフォーム別確認・読者レビューを一括実行
zenn-blog-writing Zenn 技術ブログの執筆ガイド
hatena-blog-markdown はてなブログ Markdown 記法
hatena-syntax-highlight はてなブログのコードハイライト
note-book-reading-memo note 向けビジネス・技術書の読書メモ
note-novel-reading-memo note 向け小説の読書メモ
textlint-blog ブログ Markdown の textlint 実行
textlint-setup textlint のインストール・設定
documentation-writing README・手順書・ADR などの技術ドキュメント執筆

Skillsを入れればAIは賢くなるわけではない — ClaudeCampで学んだSkill活用術 で触れた「グローバルに置くのは、プロジェクトを跨いで使える汎用 Skills だけ」という方針に沿った選び方だ。Next.js 固有の知識のようなプロジェクト依存のものは入れていない。

各 Skill は Agent Skills 仕様 に従い、skills/<skill-name>/SKILL.md の形で置いている。OpenAI や Cursor が公式カタログを出している流れ(Cursor・Codex・Claude Code — 主要AIコーディングツールが「プラグイン/スキル」で拡張する時代へ)と同じく、再利用可能なパッケージとして整理した、という位置づけだ。


gh skill install で入れる

GitHub CLI 2.x 以降には、Skills をリポジトリからインストールする gh skill コマンドがある(プレビュー機能)。redamoon/skills もこの経路で配布している。

基本

# Cursor に zenn-blog-writing をユーザー全体で入れる
gh skill install redamoon/skills zenn-blog-writing --agent cursor --scope user

# バージョンを固定(推奨)
gh skill install redamoon/skills blog-workflow --agent cursor --scope user --pin v1.0.0

--agent には cursorclaude-codecodexgithub-copilot などが指定できる。--scope user~/.cursor/skills/ のようなホーム配下、project は現在の Git リポジトリ内に置く。

インストール先を自分で決めたい場合は --dir も使える。

gh skill install redamoon/skills documentation-writing \
  --dir ~/.cursor/skills/documentation-writing \
  --pin v1.0.0

対話式プロンプトを避ける

gh skill install だけ実行すると、リポジトリ・スキル・エージェントを順に聞かれる。エージェント一覧が長く、ターミナルから見切れることがある。

必要なフラグをすべて渡せば、プロンプトなしで完了する。

gh skill install redamoon/skills blog-workflow \
  --agent cursor \
  --scope user \
  --pin v1.0.0

ローカルクローンから

リポジトリを clone して編集・検証している場合は、--from-local でそのまま入れられる。

gh skill install . blog-workflow --from-local --agent cursor --scope user

手動でシンボリックリンクを張る方法も README に書いてある。gh skill を使わない環境向けだ。

ln -s "$(pwd)/skills/zenn-blog-writing" ~/.cursor/skills/zenn-blog-writing
ln -s "$(pwd)/skills/zenn-blog-writing" ~/.claude/skills/zenn-blog-writing

アクセス制御は GitHub のリポジトリ権限そのもの

gh skill install は GitHub API 経由でファイルを取得する。Skill 固有の別枠の認可はなく、リポジトリへのアクセス権がそのまま Skill へのアクセス権になる。

private repo の場合
  ├── collaborator / org member → gh auth login 済みなら gh skill install できる
  └── アクセス権のない人 → 404 扱いでインストールできない

public repo の場合
  └── 誰でも gh skill install できる(gh auth 不要)

実用上は、次のようにリポジトリの公開範囲で配布先を決められる。

ユースケース 設定
自分だけ使う private repo、自分のみ
チームで共有 private repo、org / collaborators に権限付与
全員に公開 public repo
特定チームだけ private repo + GitHub Teams で管理

redamoon/skills は現状 public だが、private にしておけば collaborator にだけ Skills を配布する運用もそのまま成立する。社内の執筆ルールや textlint 設定のような、外に出したくない手順を Skill 化するときに効く。

もう一点、gh skill install は Skill 名だけでなく exact path でも指定できる。大きなリポジトリから特定 Skill だけ取り出すときは、ツリー全体の走査を避けられる。

gh skill install owner/repo skills/specific-skill

公開側(メンテナ向け)

Skills リポジトリの公開も gh skill publish で行う。--dry-run で検証してからリリースを切る。

gh skill publish --dry-run   # 検証のみ
gh skill publish             # リリース作成
gh skill publish --tag v1.0.0  # タグ指定で非対話

gh skill install はタグ付きリリース → デフォルトブランチの HEAD の順でバージョンを解決する。利用側は --pin v1.0.0 で固定しておくと、意図しない更新を避けられる。

リポジトリ内の AGENTS.md に、スキル追加時のルールや discovery 規約を書いてある。公開・再利用を前提にしているので、プロジェクト固有のパス(06-Blog/ など)は Skill 本文に入れない方針だ。


なぜ GitHub で配るのか

Skills をローカルだけに置いていると、次の問題が出やすい。

  1. 環境を替えるたびにコピーが必要 — 新しい Mac や CI 用のマシンで毎回手作業になる
  2. バージョンが曖昧 — どの時点の SKILL.md か追えない
  3. 共有のハードルが高い — zip や gist より、URL とタグの方が再現しやすい

GitHub リポジトリ + gh skill install にすると、取得・更新・固定が CLI 一本で揃う。Cursor・Codex・Claude Code — 主要AIコーディングツールが「プラグイン/スキル」で拡張する時代へ で整理した「拡張が公式ルートになった」流れの中でも、自作 Skills を同じ作法で配れる。

自分用のカタログだが、ブログ執筆や textlint 運用に同じ課題を持つ人があれば、そのまま使えるか、fork して自分のルールに差し替える土台にしてほしい。


使い方の目安

  • 記事を書き始める前zenn-blog-writing または hatena-blog-markdown / note-* を入れて、プラットフォーム別の型を揃える
  • 執筆後の仕上げblog-workflow で textlint とフォーマット確認を一括実行
  • 新しいリポジトリで textlint を整えたいtextlint-setuptextlint-blog の順
  • README や ADR を書くdocumentation-writing

Skills は万能薬ではない。Skillsを入れればAIは賢くなるわけではない — ClaudeCampで学んだSkill活用術 のとおり、載せるのは「毎回説明していること」「自分のドメイン知識」に絞るのがよい。カタログに並んでいるから効くわけではなく、自分の文脈に合うものを選び、足りない部分は自作する使い方になる。


まとめ

  • redamoon/skills — ブログ執筆・技術ドキュメント向けの汎用 Skills 9 本を Git 管理
  • gh skill install — Cursor / Claude Code / Codex などへ --agent--scope を指定してインストール
  • アクセス制御 — GitHub のリポジトリ権限がそのまま適用される(private + collaborator でチーム限定配布も可)
  • --pin v1.0.0 — 本番・日常利用ではタグ固定を推奨
  • 公開は gh skill publish — メンテナは dry-run で検証してからリリース

「毎回プロンプトでやっていることを手順化する」第一歩として、自分の Skills をリポジトリにまとめ、gh skill で配布できるようにした。同じ悩みを持っている人の参考になればうれしい。


参考リンク