mcpField
N
new-feature

new-feature

github.com/michaelshimeles開発1.4k337 回インストール1 週間前に更新
リポジトリ

new-feature について

編集作業を Git worktree で分離し、変更前にリポジトリの作業範囲を確認するコーディングエージェント向けスキルです。環境の準備、検証、後片付けを案内し、別タスクの作業との混在を防ぎます。

主な機能

  1. 01タスク別の worktree とブランチ作成
  2. 02既存の分離状態と作業状態の確認
  3. 03未マージ PR の変更範囲の確認
  4. 04ランタイムと依存関係の検証
  5. 05マージ後の worktree の削除

活用シーン

  1. 01分離した機能開発の開始
  2. 02未マージ PR のファイル競合の確認
  3. 03割り当てられたブランチとランタイムの検証
  4. 04マージ済み PR の作業環境の整理

インストール

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

$npx skills add https://github.com/michaelshimeles/skills --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 を使用するのが想定どおりです。

コメント