dotfiles/claude/skills/safe-commit/SKILL.md
git commit を「ユーザー明示確認 → ラッパースクリプト経由」でのみ実行する安全コミットスキル。.claude/settings.json で `Bash(git commit:*)` を deny している環境で、AIによる勝手なコミットを防ぎつつ、確認を経た上で意図的にコミットしたい場合に使う。「コミットして」「commit」「変更を確定」「/safe-commit」などのリクエストでトリガー。
npx skillsauth add octkp/dotfiles safe-commitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
このリポジトリでは Bash(git commit:*) が .claude/settings.json で deny されており、AIが直接 git commit を実行することはできない。本スキルは、ラッパースクリプト .claude/scripts/git-commit.sh 経由で、ユーザーの明示確認を取ったうえでコミットするための唯一の正規ルート。
CLAUDE_SAFE_COMMIT_OK=1 を付けて実行する。これがないとスクリプトはエラーで終了する。--no-verify などフック迂回フラグは使わない(ユーザーが明示的に要求した場合のみ)。-A / . で全部ステージするのは避ける。意図しないファイル(.env 等)の混入を防ぐため、ファイル名を明示的に指定する。以下を 並列で 実行して、コミット対象の全体像を掴む。
git status
git diff --staged
git diff
git log -5 --oneline
git status で untracked / modified を確認git diff --staged で既にステージされている変更を確認git diff で未ステージの変更を確認git log -5 --oneline でこのリポジトリのコミットメッセージのスタイル(日本語/英語、prefix の有無、conventional commits か等)を確認.env / 秘密鍵 / 巨大なバイナリ / 想定外のファイルが含まれていないか必ず目視で確認するAskUserQuestion で以下を提示してユーザー承認を得る:
--amend や --no-verify などの特殊オプションの有無「このメッセージでコミットしてよいか」を1問にまとめてもよい。選択肢は「OK」「メッセージ修正」「ファイル修正」「中止」など。
ユーザーが「OK」以外を選んだ場合は実行しない。
指定ファイルだけを明示的に git add する。-A や . は使わない。
git add path/to/file1 path/to/file2
必ず CLAUDE_SAFE_COMMIT_OK=1 を付けて実行する。スクリプトはこの環境変数がないと exit 2 で終了する。
メッセージは HEREDOC で渡すと改行・引用符が安全。
CLAUDE_SAFE_COMMIT_OK=1 ./.claude/scripts/git-commit.sh -m "$(cat <<'EOF'
変更概要を1-2文で記載
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
EOF
)"
git commit ... を呼ぼうとしても deny に阻まれる./.claude/scripts/git-commit.sh(カレントがリポジトリルートであることが前提)git status
git log -1 --stat
CLAUDE_SAFE_COMMIT_OK=1 を忘れた場合: スクリプトが exit 2 で「safe-commit skill 経由でのみ実行可能」と表示して終了する。確認ステップを飛ばしている可能性が高いので、ワークフローを最初からやり直す。git commit を呼んでいる。スクリプト経由に直す。--amend を使うと 前のコミット を書き換えてしまうので絶対に使わず、フックの指摘を修正してから 新規コミット を作り直す。CLAUDE_SAFE_COMMIT_OK=1 の常用化(毎回スキル経由のフロー全体で取り扱うこと)git add -A / git add .(意図しないファイル混入リスク)--no-verify の独断使用--amendgit config の変更documentation
base リポジトリ(~/base)の主要ディレクトリ(dotfiles / home / local / scripts / docs)の README.md と、リポジトリ直下の README.md を、実際のファイル構成に合わせて更新・新規作成するスキル。各ディレクトリの中身を実際に走査して内容を導出するので、設定追加・ディレクトリ移動のあとに走らせると README が現状と一致する。「READMEを更新して」「READMEを作り直して」「base のドキュメントを整える」「/base-readme」などのリクエストで使用。
development
旧 badev-knowledge-base リポの docs/{苗字}/ 配下を、許可リストの現役メンバー 4 人 (takano / tokita / yukioka / ushiroyama) に絞って ba2-workspace/docs/ に同期するスキル。旧リポを source of truth として、衝突時は新リポ側を旧リポで上書きする。コミット・プッシュは行わず、git add までで停止する。「badev-knowledge-base から同期して」「旧リポのナレッジを取り込んで」「badev-knowledge-sync を走らせて」「旧 docs を同期」などのリクエストでトリガー。
documentation
チケット番号(BAX-XXXX)を伝えるだけで、ba2-ticket-knowledge-logger が記録したナレッジドキュメント(README.md / LOG.md / PLAN.md)を全ユーザー・全カテゴリ横断で自動検索して読み込み、要約して提示するスキル。別セッションで過去の調査・実装内容を読み直したいときに使う。「BAX-10987」「BAX-10325のナレッジ読んで」「前に調べたBAX-XXXXの記録」「BAX-XXXXの続きをやりたい」「BAX-XXXX読み直して」などのリクエストでトリガー。
tools
チケット番号(BAX-XXXX)とカテゴリ(調査/実装/その他)を指定して、会話ログとまとめファイルを記録し、JIRAチケットにもコメントとしてナレッジを投稿するスキル。「BAX-10325の調査を記録」「実装にチケット作成」「会話ログを保存」などのリクエストで使用。