# Shiiman Git:add Commit

> 変更をステージング・コミットする。「コミット」「コミットして」「変更をコミット」「gitignore チェック」「コミット前チェック」「機密ファイル確認」などで起動。

- Skill: `shiiman/shiiman-git-add-commit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add shiiman/shiiman-git-add-commit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shiiman/shiiman-git-add-commit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: shiiman (https://skillmd.com/u/shiiman)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/shiiman/shiiman-git-add-commit

---


# Add & Commit

セキュリティチェック → コミットメッセージ生成 → ステージング → コミットを行うスキル。

## Help

`$ARGUMENTS` に `--help` が含まれる場合、以下を表示して終了:

```text
/shiiman-git:add-commit - Add & Commit

概要:
  セキュリティチェック + .gitignore チェックを実行し、
  変更をステージング・コミットする。

使用方法:
  /shiiman-git:add-commit [オプション]

オプション:
  --help        このヘルプを表示
  --no-confirm  ユーザー確認ダイアログをスキップ（workflow 自動呼び出し用）
```

## ワークフロー

### 1. 変更内容の確認

```bash
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       |

**検出時のアクション**:

1. 警告を表示
2. `.gitignore` への追記を提案
3. 承認されたら `.gitignore` に追加
4. `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. ステージング

```bash
git add {対象ファイル}
```

### 6. コミット

```bash
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` 指定時を除く）
- ❌ プッシュは実行しない（案内のみ）
- ❌ デフォルトブランチへの直接コミットは避ける（警告を出す）

