Global config push
Skill mjcreativelab/mjcreativelab-agent-prompts/internal/global-config-push
リポジトリの dotfiles/claude/ からグローバル Claude 設定(~/.claude/ の CLAUDE.md・settings.json・statusline-command.sh・rules/・hooks/・agents/・commands/・keybindings.json・.mcp.json)へ反映する。「設定を反映する」「グローバル設定を push して」と言ったら起動。既存ファイルはバックアップ後に上書き。From its SKILL.md
npx -y skills add mjcreativelab/mjcreativelab-agent-prompts --skill global-config-pushAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.8 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
Global Config Push
dotfiles/claude/ の設定ファイルを ~/.claude/ に反映(コピー)する。
同期対象
pull(global-config-pull)と同一。ミラー側に存在するものだけを反映する:
- ファイル:
CLAUDE.md・settings.json・statusline-command.sh・keybindings.json・.mcp.json - ディレクトリ:
rules/・hooks/・agents/・commands/
push は追加・上書きのみ行い、~/.claude/ 側にしかないファイルは削除しない(ローカル限定ファイルの保護。削除の反映=ミラー同期は pull 側のみ)。
settings.json だけは単純コピーではなくマージで反映する(手順 3)。pull 側がミラー作成時に (a) $HOME を ~ へ正規化し、(b) ~/.claude/.config-sync-exclude に列挙した非公開 marketplace のエントリを除去しているため、そのまま上書きすると live の絶対パスが ~ リテラルに化け、社内 marketplace の設定が消えるため。
手順
リポジトリルートで実行する。
-
差分確認(反映前に必ず実施):
for f in CLAUDE.md settings.json statusline-command.sh keybindings.json .mcp.json; do [ -f dotfiles/claude/"$f" ] && { echo "--- $f"; diff dotfiles/claude/"$f" ~/.claude/"$f"; } done for d in rules hooks agents commands; do [ -d dotfiles/claude/"$d" ] && { echo "--- $d/"; diff -r dotfiles/claude/"$d" ~/.claude/"$d"; } done差分サマリを日本語で提示し、ユーザーに反映の意思を確認する(
AskUserQuestionを使う)。 -
バックアップ:
TS=$(date +%Y%m%d%H%M%S) for f in CLAUDE.md settings.json statusline-command.sh keybindings.json .mcp.json; do [ -f ~/.claude/"$f" ] && cp ~/.claude/"$f" ~/.claude/"$f".bak.${TS} done for d in rules hooks agents commands; do [ -d ~/.claude/"$d" ] && cp -R ~/.claude/"$d" ~/.claude/"$d".bak.${TS} done -
コピー実行(追加・上書きのみ。削除はしない):
for f in CLAUDE.md statusline-command.sh keybindings.json .mcp.json; do [ -f dotfiles/claude/"$f" ] && cp dotfiles/claude/"$f" ~/.claude/"$f" done for d in rules hooks agents commands; do [ -d dotfiles/claude/"$d" ] && { mkdir -p ~/.claude/"$d" && cp -R dotfiles/claude/"$d"/. ~/.claude/"$d"/; } done chmod +x ~/.claude/hooks/*.sh ~/.claude/statusline-command.sh 2>/dev/null || truesettings.jsonは~の展開 + 非公開 marketplace の保持を行ってから反映する(jqが必要。live 側が無い初回はミラーをそのまま置く):MIRROR=dotfiles/claude/settings.json if [ -f "$MIRROR" ]; then TMP="${TMPDIR:-/tmp}/settings-push.json" sed "s|\"~/|\"${HOME}/|g" "$MIRROR" > "$TMP" if [ -f ~/.claude/settings.json ]; then EXCLUDE=~/.claude/.config-sync-exclude MPS=$([ -f "$EXCLUDE" ] && grep -vE '^[[:space:]]*(#|$)' "$EXCLUDE" | jq -R . | jq -s . || echo '[]') jq -s --argjson mps "$MPS" ' .[0] as $mirror | .[1] as $live | $mirror | .enabledPlugins = (($mirror.enabledPlugins // {}) + (($live.enabledPlugins // {}) | with_entries((.key | split("@") | last) as $m | select(($mps | index($m)) != null)))) | .extraKnownMarketplaces = (($mirror.extraKnownMarketplaces // {}) + (($live.extraKnownMarketplaces // {}) | with_entries(.key as $k | select(($mps | index($k)) != null)))) ' "$TMP" ~/.claude/settings.json > "${TMP}.merged" && mv "${TMP}.merged" "$TMP" fi jq -e . "$TMP" >/dev/null && cp "$TMP" ~/.claude/settings.json fijq -e .の妥当性チェックを通ったものだけ反映する(壊れた JSON で live 設定を潰さない)。jqが無い環境ではこのステップを飛ばし、settings.json は反映せずその旨を報告する(単純コピーで代替しない)。 -
確認:
for f in CLAUDE.md statusline-command.sh keybindings.json .mcp.json; do [ -f dotfiles/claude/"$f" ] && { diff dotfiles/claude/"$f" ~/.claude/"$f" >/dev/null && echo "$f: OK" || echo "$f: 差分あり(要確認)"; } done for d in rules hooks agents commands; do [ -d dotfiles/claude/"$d" ] && { echo "--- $d/"; diff -r dotfiles/claude/"$d" ~/.claude/"$d"; } done # settings.json はマージ反映のため一致しないのが正常。ミラー側の内容が live に入ったかを確認する jq -e . ~/.claude/settings.json >/dev/null && echo "settings.json: 妥当な JSON" echo "live のみに残る非公開 marketplace: $(jq -r '.extraKnownMarketplaces | keys | join(",")' ~/.claude/settings.json)" grep -c '"~/' ~/.claude/settings.json | sed 's/^/live に残る ~ リテラル: /'結果を日本語で報告する。バックアップパスも提示すること。ディレクトリの diff で
Only in ~/.claude/...が出た場合は、ミラー対象外(ローカル限定)のファイルを示すだけなので、ミラー側ファイルが一致していれば反映は成功と判断してよい。settings.jsonはマージ反映のためミラーと一致しないのが正常で、確認すべきは「妥当な JSON であること」「非公開 marketplace が live に残っていること」「~リテラルが 0 件であること」の 3 点。
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.