mcpField
R
repo-rename

repo-rename

github.com/paulrberg開発10293 回インストール今日更新
リポジトリ

repo-rename について

リポジトリの識別情報やパスを管理する開発者向けのリネームスキルです。GitHub リポジトリ、ローカル作業領域、リモート、継続性参照の変更を事前に表示し、適用前に明示的な確認を求めます。

主な機能

  1. 01リポジトリ変更の事前確認
  2. 02GitHub リポジトリとローカルフォルダーの改名
  3. 03origin URL の更新
  4. 04対象範囲内のリポジトリ参照の置換
  5. 05条件を満たすエージェント継続性パスの維持

活用シーン

  1. 01リポジトリと対応するローカルフォルダーの改名
  2. 02名前を変えずに別パスへ移動
  3. 03改名後のローカル参照の更新
  4. 04リモートがない場合のローカルのみの改名

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/paulrberg/agent-skills --skill repo-rename

インストール後、Claude Code で/repo-renameを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlscripts/repo-rename.py

詳細

リポジトリの名前変更

スラッシュコマンドまたはドル記号の呼び出しによって、すでにこの指示が会話に追加されている場合は、そのまま従ってください。その場合、このスキルをスキルツールから再度呼び出さないでください。

リポジトリの名前を変更する前に、GitHub、Git、ファイルシステム、エージェントの継続性に関する変更一式をすべてプレビューしてください。

対象範囲

  • 現在の GitHub リポジトリ、対応するローカルフォルダー、origin URL の名前を変更します。
  • パス引数を 2 つ指定した場合は、名前、GitHub ID、origin を変更せずに、ソースリポジトリを移動先に移動します。両方のパスのフォルダー名は同じである必要があります。作成する前に、存在しない親ディレクトリをプレビューしてください。
  • リポジトリに Git リモートがない場合は、フォルダー、継続性参照、リポジトリの内容といったローカル状態のみ名前を変更します。この場合、ヘルパーは GitHub の名前変更と origin の更新をスキップします。リモートがあるリポジトリでは、引き続き有効な GitHub コンテキストが必要です。
  • アクティブな Claude Code または Codex のトランスクリプトがリポジトリにある場合に限り、~/.claude/projects、存在する場合は ~/claude/projects、~/.codex/sessions、~/.codex/config.toml 内の古いパスのリテラル文字列を更新します。この継続性の更新は、アクティブなトランスクリプトがないリポジトリには適用されません。
  • リポジトリ内の制約対象となる古い名前のリテラル参照を更新します。ただし、VCS、依存関係(Python 仮想環境を含む)、キャッシュ、生成されたビルドディレクトリは除外します。
  • 同じ名前のまま移動する場合は、リポジトリ内のファイルに含まれる古い絶対リポジトリパスのみを置換します。
  • デフォルトでは、追跡対象のリポジトリファイルを使用し、置換候補を読み取る前に PROMPT.md、TODO.md、シンボリックリンクをスキップします。検出時には除外ディレクトリを走査対象から外します。ユーザーがメモ、依存関係、キャッシュ、生成ファイルの更新を明示的に許可した場合は、プレビューと適用の両方で --include-local-state を渡してください。これらのリポジトリ内テキストファイルも対象になりますが、ファイルの権限は維持されます。シンボリックリンク、バイナリファイル、.git は引き続き除外されます。
  • ヘルパーは CLAUDE_CONFIG_DIR と CODEX_HOME を尊重し、アクティブなトランスクリプトがある場合に限って継続性の更新を行い、継続性ストアと Codex の設定では絶対リポジトリパスのみを置換します。
  • 他のトランスクリプトストア、アーカイブ、リモート、リポジトリは変更しないでください。

ワークフロー

  1. 最初の2つのパス引数からソースリポジトリを解決するか、名前変更の場合は現在のディレクトリから解決します。継続性の維持が対象になるかを判断する前に、アクティブな AI チャットのトランスクリプトがあるか確認します。

    • Claude Code:${CLAUDE_CONFIG_DIR:-~/.claude}/projects/<encoded-repo-path>(絶対リポジトリパス内の英数字以外の各文字を - に置き換えたもの)を解決し、存在し、空でないことを確認します。
    • Codex:${CODEX_HOME:-~/.codex}/sessions を解決し、正確な絶対リポジトリパスを参照しているセッションファイルがあるか確認します。
    • どちらも存在しない場合は、トランスクリプトの継続性に関する更新は適用されないことを明記します。その場合でも、以下の GitHub、git、ファイルシステム、リポジトリコンテンツの変更については、名前変更を続行できます。
  2. スキルディレクトリを解決し、リポジトリからヘルパーを実行して、読み取り専用のプレビューを生成します。

    uv run <skill-dir>/scripts/repo-rename.py <new-name> --dry-run
    

    同じ名前で移動する場合は、任意のディレクトリから実行します。

    uv run <skill-dir>/scripts/repo-rename.py <source-path> <destination-path> --dry-run
    

    ヘルパーを実行するには、クリーンなワークツリー、GitHub リポジトリ名とフォルダー名の一致、空いている移動先パス、有効な GitHub コンテキストが必要です。リモートがないリポジトリでは、クリーンなワークツリーと空いている移動先パスのみが必要です。この場合は "local_only": true と local:<old>-><new> の確認トークンが出力されます。旧/新リポジトリとパス、正確な確認トークン、外部コマンド、ディレクトリの移動、置換対象の全ファイル、出現回数、ロールバックの対象範囲が表示されます。同じ名前で移動する場合のトークンは move:<absolute-source>-><absolute-destination> です。リンクされたワークツリーと外部 Git ディレクトリには対応していません。

  3. --dry-run が指定されている場合は、プレビューを返して終了します。ドライランの成功時には、GitHub リポジトリ、リモート、フォルダー、設定、トランスクリプト、リポジトリファイルを変更してはなりません。

  4. それ以外の場合は、プレビュー全体を提示し、その後のユーザーメッセージで明示的な確認を求めます。その確認によって、GitHub の名前変更、ローカルフォルダーの移動、有効な場合は Claude のプロジェクトフォルダーの移動、origin の更新、一覧に記載されたすべての継続性/リポジトリ置換が承認されることを説明します。ローカルのみのプレビューの場合は、GitHub と origin の変更が発生しないことを明記します。### ⚠️ Rename preview — no changes made を先頭に置きます。コンパクトな表で GitHub、フォルダー、origin、置換件数、ロールバックの対象範囲を示し、その後に網羅的なファイル/件数の一覧を記載します。正確な確認トークンはコード形式で単独行に置きます。プレビューの内容に変更があった場合は、再生成して改めて確認を求めます。

    同じ名前で移動する場合は、変更のない GitHub の識別情報と origin を示し、作成する親ディレクトリをそれぞれ記載します。

  5. 確認後、プレビューに記載された正確なトークンを渡します。

    uv run <skill-dir>/scripts/repo-rename.py <new-name> --apply --confirm '<owner/old->owner/new>'
    

    同じ名前で移動する場合は、両方のパスとプレビューの move: トークンを渡します。

    ヘルパーは事前チェックを再実行し、置換対象の全ファイルをバックアップして、決定的なリテラル置換を適用し、失敗時にはロールバックを試みます。クリーンなワークツリー、移動先パス、確認に関するチェックを決して回避してはなりません。

  6. gh repo view、git remote get-url origin、pwd -P を使ってヘルパーの結果を検証し、一覧に記載された範囲内で旧絶対パス/名前の参照が残っていないか検索します。意図的に残した一致は、別途報告します。

完了

ドライランの完了とは、書き込みが一切ない状態で変更内容をすべてプレビューできていることです。適用の完了には、新しい GitHub の識別情報、フォルダー、リモート、一覧に記載された継続性参照が一致していることに加え、検証レポートがクリーンであることが必要です。ロールバックが不完全な場合は、### ⛔ Rollback incomplete を先頭に置き、ほかの作業をする前に失敗したロールバック操作をすべて報告します。成功した場合は、### ✅ Repository renamed と、対象/期待値/検証結果の表を使用します。ヘルパーの JSON、確認トークン、コマンド、パス、URL、ロールバックエラーは、正確なまま装飾せずに記載します。

コメント