1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[Tips] 頻繁に書き換えられるCLAUDE.mdやスキルをdotfilesリポジトリで楽に管理する

1
Posted at

はじめに

私はClaude Codeの~/.claude/CLAUDE.mdやスキル(~/.claude/skills)などをdotfilesリポジトリで管理しています。
しかし、Claude Codeに作業の振り返りからCLAUDE.mdやスキルを自己改善させていると、ホーム側のファイルが頻繁に書き換わり、dotfilesリポジトリとの差分がどんどん溜まっていって、同期が面倒です。

そこで、~/.claude/CLAUDE.mdと~/.claude/skillsをdotfilesリポジトリへ定期的にpushする仕組みをつくっていたので、紹介します。

仕組み

やっていることは次の2つだけです。

  1. ホーム側のCLAUDE.mdとスキルをdotfilesリポジトリへ取り込み、コミット・pushするスクリプトをつくる
  2. そのスクリプトを定期実行する(私はMacなので、launchdを使っている)

同期スクリプト

#!/usr/bin/env bash

set -exuo pipefail

dotfiles_dir="${HOME}/dotfiles" # dotfilesリポジトリのパス

cd "${dotfiles_dir}"

git switch main
git pull

# ホーム側のファイルをdotfilesリポジトリへ取り込む
cp ~/.claude/CLAUDE.md .claude/CLAUDE.md
rsync -a --delete ~/.claude/skills/ .claude/skills/

git add .claude/CLAUDE.md .claude/skills
if git diff --cached --quiet; then
	echo 'No changes to commit'
	exit 0
fi

git commit -m "${1:-Update claude config}"
git push

取り込む対象は、dotfilesの管理方法に合わせる必要があるので注意です。(例えば、APMなどを使ってスキルを追加している場合は、自分で管理したい対象のみを同期するようにしてください)

定期実行する

好きなタイミングで定期実行をするようにします。
私は1時間おきにスクリプトを自動で走らせるようにし、実行時のログをファイルに保存するようにしています。

launchdの設定ファイルはClaude Codeに書かせるのが楽で良いです。

注意点

Claude Codeが書き換えた内容がmainにpushされるので、意図しない情報がpushされる恐れがあります。
リポジトリをプライベートにするなどで、万が一pushされても外部に公開されないようにしておくのがおすすめです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?