From hasegawa
This skill should be used when the user asks to commit, wants help with git commit, or says 'コミットして', 'hasegawa', 'コミットを整理して'.
npx claudepluginhub sniper-fly/souma-recette --plugin hasegawaThis skill uses the workspace's default tool permissions.
ステージされていない変更を検出し、適切なコミット粒度の提案からgit commitまでを一貫してアシストする。
Manages Git commit workflow using Conventional Commits format with safety protocols. Creates, validates, executes commits; handles hooks, PRs, and safety checks before operations.
Guides Next.js Cache Components and Partial Prerendering (PPR): 'use cache' directives, cacheLife(), cacheTag(), revalidateTag() for caching, invalidation, static/dynamic optimization. Auto-activates on cacheComponents: true.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Share bugs, ideas, or general feedback.
ステージされていない変更を検出し、適切なコミット粒度の提案からgit commitまでを一貫してアシストする。
以下の5ステップを順番に実行する。
以下のコマンドを実行して現在の状態を把握する:
git status
git diff --stat
git diff --name-only
git log --oneline -10
変更がない場合はその旨をユーザーに伝えて終了する。
references/sensitive-file-patterns.md を参照し、ステージ対象のファイルに機密ファイルが含まれていないかチェックする。
.gitignore を読み込み、カバー済みパターンを確認するgit status の出力に含まれるファイルを機密パターンと照合する.gitignore でカバーされていないパターンのみを検出対象とするCriticalパターンに該当するファイルがある場合:
.gitignore への追加を提案する.gitignore にパターンを追加してからStep 3へ進むWarningパターンに該当するファイルがある場合:
該当ファイルがなければそのままStep 3へ進む。
git diff(ステージ済みの場合は git diff --cached)の内容を分析し、変更を論理的なグループに分類する。
分類基準:
提案フォーマット:
各グループについて以下を提示:
AskUserQuestionで以下の選択肢を提示:
questions:
- question: "以下のコミット分割案でよろしいですか?"
options:
- label: "提案通りに進める"
- label: "1つのコミットにまとめる"
- label: "分割を変更したい"
「分割を変更したい」が選ばれた場合、具体的な変更内容をヒアリングして再提案する。
グルーピング確定後、各グループについて Task ツール(subagent_type: general-purpose, run_in_background: false)を起動し、コミットメッセージ生成と機密チェックを行う。
サブエージェントへのプロンプト:
各グループに対して以下の情報をプロンプトに含めて Task を起動する:
あなたはコミット準備アシスタントです。以下のグループについて分析してください。
## グループ情報
- グループ名: {グループ名}
- 対象ファイル: {ファイル一覧}
## タスク
### 1. ファイル内容の把握
対象ファイルをReadで読み、以下を把握してください:
- 変更された関数名・クラス名・設定項目
- 変更の意図(新機能追加、バグ修正、リファクタリング等)
- 変更の影響範囲
### 2. diff内容の機密情報チェック
以下のコマンドでdiffの追加行を取得し、機密情報パターンをチェックしてください:
```bash
git diff -- {対象ファイル} | grep '^+'
チェック対象パターン(Critical):
チェック対象パターン(Warning):
除外条件:
以下のスタイルに合わせてコミットメッセージを生成してください:
{Step 1で把握した既存コミットスタイル情報: 言語、prefix有無、形式の具体例}
メッセージ生成ルール:
以下の形式で結果を報告してください:
コミットメッセージ: {生成したコミットメッセージ}
機密情報チェック結果:
### Step 5: 確認とコミット実行
サブエージェントの結果を集約し、確認・実行する。
**1. 結果集約と機密情報対応:**
- 各サブエージェントの結果をまとめて表示する
- **機密情報(Critical)が検出されたグループがある場合:**
- AskUserQuestionで該当行の詳細を警告表示する
- 該当グループを「除外して続行」か「そのままコミット」かをユーザーに選択してもらう
- **Warning検出の場合:**
- AskUserQuestionで内容を確認し、ユーザーに判断してもらう
**2. コミットメッセージの最終確認:**
AskUserQuestionで全グループのコミットメッセージを一覧提示し、確認を求める:
```yaml
questions:
- question: "以下のコミットメッセージでよろしいですか?\n\n{各グループのメッセージ一覧}"
options:
- label: "このメッセージで進める"
- label: "メッセージを修正したい"
「修正したい」が選ばれた場合、ユーザーの指示に従ってメッセージを修正する。
3. コミット実行:
git add(ファイルを個別に指定)+ git commit(HEREDOC)を順次実行するgit log --oneline -5 で結果を確認し、ユーザーに報告する注意事項:
git add . や git add -A は使用しない(意図しないファイルの混入を防ぐ)