dotfiles/claude/skills/safe-push/SKILL.md
git push を「ユーザー明示確認 → ラッパースクリプト経由」でのみ実行する安全プッシュスキル。.claude/settings.json で `Bash(git push:*)` を deny している環境で、AIによる勝手なプッシュを防ぎつつ、確認を経た上で意図的にプッシュしたい場合に使う。「プッシュして」「push」「リモートに上げる」「/safe-push」などのリクエストでトリガー。
npx skillsauth add octkp/base safe-pushInstall 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 push:*) が .claude/settings.json で deny されており、AIが直接 git push を実行することはできない。本スキルは、ラッパースクリプト .claude/scripts/git-push.sh 経由で、ユーザーの明示確認を取ったうえでプッシュするための唯一の正規ルート。
CLAUDE_SAFE_PUSH_OK=1 を付けて実行する。これがないとスクリプトはエラーで終了する。--force / --force-with-lease はユーザーが明示要求したときのみ。特に main / master への force push は必ず警告してから。git status
git branch --show-current
git log @{u}..HEAD --oneline 2>/dev/null || git log -5 --oneline
git remote -v
未コミットの変更がある場合は、それを push に含めないこと(push 対象はあくまでコミット済みのもの)をユーザーに伝える。
origin の現在ブランチ)-u で upstream を設定するか--force / --force-with-lease が必要か(基本不要)AskUserQuestion で以下を提示してユーザー承認を得る:
-u / --force-with-lease 等)の有無ユーザーが「OK」以外を選んだ場合は実行しない。
必ず CLAUDE_SAFE_PUSH_OK=1 を付けて実行する。スクリプトはこの環境変数がないと exit 2 で終了する。
# 通常 push
CLAUDE_SAFE_PUSH_OK=1 ./.claude/scripts/git-push.sh
# upstream 設定込み(初回)
CLAUDE_SAFE_PUSH_OK=1 ./.claude/scripts/git-push.sh -u origin "$(git branch --show-current)"
# force-with-lease(ユーザー明示承認時のみ)
CLAUDE_SAFE_PUSH_OK=1 ./.claude/scripts/git-push.sh --force-with-lease
git push ... を呼ぼうとしても deny に阻まれる./.claude/scripts/git-push.shgit status
CLAUDE_SAFE_PUSH_OK=1 を忘れた場合: スクリプトが exit 2 で終了。確認ステップを飛ばしている可能性が高いので、ワークフローを最初からやり直す。git push を呼んでいる。スクリプト経由に直す。git fetch + git rebase 等で取り込んでから再度 safe-push のワークフローを通す。--force は安易に使わない。--no-verify でフックを無視する push(ユーザー明示要求時のみ)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の調査を記録」「実装にチケット作成」「会話ログを保存」などのリクエストで使用。