mcpField
N
new-feature

new-feature

github.com/michaelshimeles開発1.4k345 回インストール2 日前に更新
リポジトリ

new-feature について

機能編集タスク向けに、Git worktree とブランチを分離する手順を定めたスキルです。タスクの分離確認、同期、重複する PR 作業の確認、worktree の検証をエージェントに案内します。

主な機能

  1. 01編集タスクごとの worktree 分離
  2. 02指定したベースからの同期
  3. 03オープン PR の変更ファイル確認
  4. 04ブランチと worktree の割り当て検証
  5. 05依存関係とポート分離の手順

活用シーン

  1. 01機能実装を分離して開始
  2. 02オープン PR との競合確認
  3. 03並行タスクの分離管理

インストール

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

$npx skills add https://github.com/michaelshimeles/rstack --skill new-feature

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

詳細

新機能

各編集タスクでは、それぞれ専用のワークツリーとブランチを使用します。ユーザーが別のベースを指定しない限り、最新の origin/main から作成します。読み取り専用の作業では、既存のチェックアウトを使用できます。main 上で作業したり、別のタスクの作業を再利用したりしないでください。

まず既存の分離状態を確認する

git worktree list、git status --short、現在のブランチ、セッションのタスク割り当てを確認します。環境がすでにこのタスク用のワークツリーを作成している場合は、そのパスとブランチを維持し、手順 3 と 4 は省略してください。手順 5 では、実際に割り当てられたパスを使用します。エディター名やブランチのプレフィックスだけで分離されていると判断しないでください。それ以外の場合は、すべての手順に従ってください。

手順

  1. 同期:git fetch origin を実行します。

  2. 作業範囲の確認:gh pr list を実行し、オープン中の PR の変更ファイル(gh pr diff <n> --name-only)に目を通します。共有ファイルについては、重複する差分を確認します。独立した編集は、自分のワークツリーで進めてもかまいません。変更内容の動作が競合する場合、別のタスクの未完了作業が必要な場合、または担当が不明確な場合に限り、指示を求めてください。共有チェックアウトに未コミットの作業がないか確認し、変更は加えないでください。別のホスティングプラットフォームを使用している場合は、同等の PR/MR ツールを使用します。利用できない場合は、作業範囲を確認できないことを報告し、それでも作業を分離してください。

  3. タスクに名前を付ける:小文字とハイフンに短い一意の接尾辞を付けます。例:user-auth-0816a。名前が既存のため git worktree add が失敗した場合は、別の名前を選びます。強制したり、既存の名前を再利用したりしないでください。

  4. リポジトリのルートからワークツリーを作成する:

    git worktree add <worktrees-dir>/<task-name> \
      -b <branch-prefix>/<task-name> origin/main
    

    チェックアウトの外部、またはチェックアウト内の Git で無視される ディレクトリを使用し、ワークツリーが誤ってコミットされないようにします。一貫したブランチのプレフィックス(例:agent/)を使用します。リポジトリに規約が定められている場合は、それに従ってください。

  5. 移動して確認する:

    cd <worktrees-dir>/<task-name>
    git branch --show-current   # must print your new branch, not main
    

    必要なランタイムのバージョンを確認します。タスクのチェックに必要な場合は、ワークツリー内に依存関係をインストールします。ドキュメントのみの作業では、無関係なアプリケーションのツールチェーンをインストールする必要はありません。

注意事項

  • ワークツリーでは、開発サーバーのポートや共有データベースは分離されません。 追跡対象の依存関係ロックファイルは、各ワークツリーで別々です。ポートからの応答が 自分の プロセスによるものか(lsof -i :<port>)を確認してから、その提供内容を信用してください。ロックファイルの競合は、手作業でマージせず、再生成して解決してください。

  • PR がマージまたはクローズされるまで、ワークツリーを保持してください。マージ後にクリーンアップします:

    git worktree remove <worktrees-dir>/<task-name>
    git branch -D <branch-prefix>/<task-name>
    

    スカッシュマージまたはリベースマージ後は、作業がマージ済みでも -d は拒否するため、-D を使用するのが想定どおりです。

コメント