working-with-graphite について
Graphiteでコード変更を管理するコーディングエージェント向けのスキルです。ブランチ、コミット、スタックの更新、PRの手順を定め、メタデータを保つための`gt`コマンド利用と、許可のないブランチ作成やPR送信の制限を重視します。
主な機能
- 01Graphiteのブランチとスタック規則
- 02コミットと変更修正の手順
- 03PR送信と承認のルール
- 04コンフリクトの解決手順
- 05スタック途中のブランチ更新
活用シーン
- 01スタックしたブランチでの作業計画
- 02Graphiteスタック内の既存ブランチ編集
- 03定められた手順でのPR更新と送信
- 04同期やrestack中のコンフリクト解決
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ neekolas/ claude-skills --skill working-with-graphiteインストール後、Claude Code で/working-with-graphiteを入力して読み込まれたか確認します。
詳細
Graphite を使った作業
基本原則
- main にコミットしないでください すべてのコミットはフィーチャーブランチ上で行う必要があります
- 依頼されない限りブランチを作成しないでください 明示的に依頼されない限り、新しいブランチを作成しないでください。
- 生の Git rebase は絶対に使用しないでください -- スタックのメタデータを保持するため、常に
gtコマンドを使用してください - コミット時には、必ず Claude を共同作成者として設定してください
ブランチ戦略
- 計画を作成するときは、各作業単位で想定されるブランチを記載してください
- 500 LOC を超える作業は複数のブランチに分割し、互いにスタックしてください
- 論理的な順序でブランチをスタックし、各ブランチには独立した機能を含めてください。
- 各ブランチは、すべての lint、チェック、テストの評価に合格できる必要があります
コードのコミット
- git コマンドを使って、変更の影響を受けるファイルを手動でステージしてください。すべての変更を自動的にステージする
-aフラグは使用しないでください。 - 新機能の場合は、
gt modify --commit -m "description of the change"を使ってコミットを作成してください - 既存機能の変更やバグ修正の場合は、
gt modifyを使ってコミットを修正してください
変更の提出
- タスクが完了したら、必ず
gt restackを実行し、影響を受ける上位スタックのブランチが引き続き有効であること(lint チェックに合格すること)を確認してください - タスクが完了したら、
gt submit --stack --update-onlyを使用してください - 変更が重要な場合は、既存の PR の説明を読み、変更内容を反映してください。重要なコンテキストが失われるような上書きはしないでください。
- PR の説明への変更は、ユーザーに提示して承認を得てください
PR の作成
- 新しい PR を提出できるのは、ユーザーから明示的な同意があった場合のみです。
gt submit --draftを使って PR を作成してください。新しい PR は必ずドラフトとして提出してください。- PR の提出後、詳細な PR の説明を作成し、
ghツールを使って提出してください - PR の説明を提出する前に、ユーザーの承認を得てください
コンフリクトへの対処
gt sync、gt restack、gt modify の実行中にコンフリクトが発生した場合:
- 影響を受けるファイルのコンフリクトを解決します
- 解決したファイルをステージします:
git add <files> - 続行します:
gt continueまたはgt continue --all
ワークフロー:スタック途中のブランチを更新する
gt checkout <target-branch>- 編集します
gt modify -a(コミットを修正し、上位スタックを再スタックします)gt submit --stack --update-only --no-interactive(更新されたすべてのブランチをプッシュします)
よくある落とし穴
git rebase -iは絶対に使用しないでください -- Graphite のメタデータが壊れます。代わりにgt moveを使用してください。git branch -dは絶対に使用しないでください -- メタデータを保持するため、gt deleteを使用してください。git commit --amendは絶対に使用しないでください -- 再スタックも行うgt modify -aを使用してください。gt renameは PR のリンクを壊します -- 既存の PR があるブランチの名前変更は避けてください。- スカッシュマージは連鎖的なコンフリクトを引き起こします --
gt syncとgt restackで解決できます。
コメント
Markdown 対応