コンテンツにスキップ

stow

@meganemura/stowv0.1.1

Personal skills for Git checkouts with local host links

インストール

npm install @meganemura/stow

stow は、Git チェックアウト用の個人のスキルを、そのチェックアウトの外で管理します。 スキルは自分の GitHub リポジトリに置き、そのリポジトリには対象のリポジトリごとに <owner>/<repo>/ のディレクトリを 1 つ作ります。 stow は、それらのスキルを、コーディングエージェントが探索するプロジェクトのスキルのパスにリンクします。 そのため、対象のリポジトリに自分のオーバーレイが入ることはありません。 対象のリポジトリは GitHub 形式の origin の URL から識別し、リモートがないときや違うときは --repo OWNER/REPO で指定します。

  • リポジトリごとのオーバーレイ。 ~/.stow/config.json の skillsDir で、自分のスキルのチェックアウトを指定します。 stow path は、現在のリポジトリのオーバーレイのパスを表示します。
  • 多くのホストに向けたリンク。 stow init --agents codex,claude-code,cursor でホストを選びます。 Claude Code は .claude/skills/<name> を読み、Codex、Cursor、Antigravity、pi、Gemini CLI、GitHub Copilot、OpenCode、Devin Desktop は .agents/skills/<name> を共有します。
  • 生成したスキルの取り込み。 stow adopt .agents/skills/my-skill は、スキルをオーバーレイにコピーし、元のディレクトリをシンボリックリンクに置き換えます。 stow add /path/to/skill はほかの場所にあるスキルをコピーし、--link を付けるとコピーせずにリンクします。
  • git には何も入らない。 stow は、自分のリンクだけに一致する info/exclude のパターンを加えるので、git status と git add はリンクを対象にしません。 除外は追跡されていないファイルにしか効かないため、stow は Git で追跡されているスキルを拒否します。
  • 別のマシンでの復元。 スキルのリポジトリを pull した後、対象のチェックアウトで stow を実行します。 コマンドを付けずに実行すると、stow は sync を実行してリンクを更新します。 stow remove my-skill は、エントリとそのリンクを削除します。
  • エージェントによるセットアップ。 stow agent-instructions は、セットアップの手引きと現在の設定の状態を表示し、ファイルは変更しません。

シェルのショートカットを使えるホストで、!stow agent-instructions を実行します。 グローバルにインストールしていない場合は、!npx --yes @meganemura/stow agent-instructions を実行します。 エージェントは表示された手引きに従って、ホストを設定し、保存場所を説明し、役に立つ個人のスキルを提案します。 そのうえで、スキルを新しく作るか、既存のスキルを取り込むか、何もしないかをユーザーに尋ねます。 セットアップの後、エージェントはそのリポジトリの stow path の下にあるスキルを読みます。 stow は、スキルのリポジトリを clone、commit、pull、push しません。 スキルの変更は、いつもの Git の手順でそのリポジトリにコミットします。

stow には Node.js 20 以降が必要です。

ターミナルウィンドウ
npm install --global @meganemura/stow
stow init --skills-dir ~/src/private-skills/skills --agents codex,claude-code,cursor
stow adopt .agents/skills/my-skill
stow list