| name | shiiman-git:add-commit |
| description | 変更をステージング・コミットする。「コミット」「コミットして」「変更をコミット」「gitignore チェック」「コミット前チェック」「機密ファイル確認」などで起動。 |
| allowed-tools | ["Read","Write","Bash","Glob","Grep"] |
| argument-hint | [--help] [--no-confirm] |
Add & Commit
セキュリティチェック → コミットメッセージ生成 → ステージング → コミットを行うスキル。
Help
$ARGUMENTS に --help が含まれる場合、以下を表示して終了:
/shiiman-git:add-commit - Add & Commit
概要:
セキュリティチェック + .gitignore チェックを実行し、
変更をステージング・コミットする。
使用方法:
/shiiman-git:add-commit [オプション]
オプション:
--help このヘルプを表示
--no-confirm ユーザー確認ダイアログをスキップ(workflow 自動呼び出し用)
ワークフロー
1. 変更内容の確認
git status
git diff
git diff --staged
2. セキュリティチェック + .gitignore チェック
変更対象のファイルを以下のカテゴリでチェックする。
機密ファイル(検出時はコミットをブロック):
| パターン | 説明 |
|---|
.env* | 環境変数ファイル |
*.pem, *.key | 秘密鍵 |
credentials.json | 認証情報 |
*_secret*, *_token* | シークレット |
.aws/, .gcp/ | クラウド認証情報 |
一般的な無視対象(検出時は警告 + .gitignore 追加を提案):
| パターン | 説明 |
|---|
node_modules/ | Node.js 依存パッケージ |
vendor/ | PHP/Go 依存パッケージ |
.DS_Store, Thumbs.db | OS システムファイル |
*.log, *.tmp | ログ・一時ファイル |
dist/, build/, coverage/ | ビルド成果物 |
IDE 設定ファイル(検出時は警告 + .gitignore 追加を提案):
| パターン | 説明 |
|---|
.idea/ | JetBrains |
.vscode/ | VS Code |
*.swp, *.swo | Vim |
検出時のアクション:
- 警告を表示
.gitignore への追記を提案
- 承認されたら
.gitignore に追加
git reset HEAD {ファイル} でステージングから除外
⚠️ コミット対象に除外すべきファイルが検出されました:
🔴 機密ファイル:
- .env.local
🟡 無視推奨:
- .DS_Store
- .idea/
.gitignore に追加してステージングから除外しますか?
3. コミットメッセージ生成
変更内容を分析し、Conventional Commits 形式でメッセージを自動生成する。
プレフィックス判定:
| 変更内容 | プレフィックス |
|---|
| 新規ファイル追加(機能) | feat: |
| バグ修正 | fix: |
| ドキュメント変更 | docs: |
| リファクタリング | refactor: |
| テスト追加・修正 | test: |
| ビルド・依存関係 | chore: |
4. ユーザー確認
$ARGUMENTS に --no-confirm が含まれる場合、このステップをスキップする。
セキュリティチェック(ステップ 2)は --no-confirm でも必ず実行される。
変更ファイル一覧とコミットメッセージを表示して承認を得る。
## コミット内容の確認
### 変更ファイル
{git status --short の出力}
### コミットメッセージ
{自動生成されたメッセージ}
この内容でコミットしてよろしいですか?
5. ステージング
git add {対象ファイル}
6. コミット
git commit -m "{コミットメッセージ}"
7. プッシュ案内
プッシュコマンドをユーザーに提示する(実行はしない)。
## コミット完了
コミット: {commit_hash}
ブランチ: {branch_name}
### プッシュするには
git push origin {branch_name}
リモートブランチが未設定の場合:
git push -u origin {branch_name}
重要な注意事項
- ✅ コミット前に必ずユーザー確認を行う(
--no-confirm 時はスキップ)
- ✅ 機密ファイルを検出した場合はコミットをブロック(
--no-confirm でも実行)
- ✅ Conventional Commits 形式を使用
- ❌ 確認なしでコミットしない(
--no-confirm 指定時を除く)
- ❌ プッシュは実行しない(案内のみ)
- ❌ デフォルトブランチへの直接コミットは避ける(警告を出す)