mcpField
V
versioning-skills

versioning-skills

github.com/oaustegardエージェントワークフロー15746 回インストール1 日前に更新
リポジトリ

versioning-skills について

スキル開発の変更追跡、確認、復旧に Git を使う方法を示すスキルです。初期化からパッケージ化まで、コミットを軸にした手順をまとめています。

主な機能

  1. 01新しいスキルの Git リポジトリ初期化
  2. 02論理的な編集ごとのコミット
  3. 03履歴の確認とバージョン比較
  4. 04コミットの取り消しや編集の破棄
  5. 05ブランチでの実験的変更
  6. 06パッケージ化前の状態確認

活用シーン

  1. 01スキル作成中の変更を追跡
  2. 02変更点を尋ねられた際の差分確認
  3. 03不要な編集やコミットの取り消し
  4. 04ブランチを使ったリスクのある変更のテスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oaustegard/claude-skills --skill versioning-skills

インストール後、Claude Code で/versioning-skillsを入力して読み込まれたか確認します。

同梱ファイルCHANGELOG.mdREADME.md

詳細

バージョン管理スキル

スキルの開発中は、git を使って変更を追跡します。スキルを作成したらリポジトリを初期化し、論理的な変更を行うたびにコミットします。また、バージョンの比較や誤りの取り消しには git コマンドを使います。

新しいスキルを作成する場合

init_skill.sh を実行したら、すぐに git を初期化します。

cd /home/claude/skill-name
git init
git add .
git commit -m "Initial commit: skill structure"

スキルを編集する場合

論理的な変更(セクションの追加、例の修正、リファクタリングなど)を行うたびにコミットします。

cd /home/claude/skill-name
git add .
git commit -m "Add: validation workflow pattern"

コミットメッセージのパターン:

  • "Add [feature]: description" - 新機能
  • "Fix [issue]: description" - バグ修正
  • "Update [section]: description" - 内容の変更
  • "Refactor [component]: description" - 構造の変更
  • "Remove [feature]: description" - 削除

ユーザーから「何が変わりましたか?」と聞かれた場合

差分をインラインで表示せず、ファイルに誘導してリンクを提示します(下記を参照)。 差分や変更履歴を作成するのは、ユーザーが明示的に依頼した場合(「何が変わりましたか?」「違いを見せて」など)のみです。

先回りして作成しないもの:

  • CHANGELOG.md ファイル
  • 変更に関するドキュメント
  • 「変更した内容はこちらです」という要約

理由: 更新されたコードやドキュメント自体が記録です。別途変更履歴を作成すると、トークンを浪費し、情報が重複します。

ユーザーから依頼された場合は、コミット履歴を表示します。

cd /home/claude/skill-name
git log --oneline

差分はファイルに保存します(トークンの浪費を防ぎます)。

cd /home/claude/skill-name
git diff <commit-hash-1> <commit-hash-2> > /mnt/user-data/outputs/changes.diff

その後、次のリンクを提示します:[View changes](computer:///mnt/user-data/outputs/changes.diff)

複数の差分の場合:

# Changed files list
git diff --name-only <commit-1> <commit-2> > /mnt/user-data/outputs/changed-files.txt

# Full diff
git diff <commit-1> <commit-2> > /mnt/user-data/outputs/full-diff.diff

# Summary stats
git diff --stat <commit-1> <commit-2> > /mnt/user-data/outputs/diff-stats.txt

誤り: git diff <commit-1> <commit-2>(標準出力に表示され、トークンを浪費します) 正しい方法: git diff <commit-1> <commit-2> > /mnt/user-data/outputs/diff.txt(ファイルに保存してリンクを提示します)

コミットを取り消す、または作業を破棄する場合

直前のコミットを取り消す(未コミットの変更は保持):

cd /home/claude/skill-name
git reset --soft HEAD~1

直前のコミットを取り消す(すべての変更を破棄):

git reset --hard HEAD~1

特定のコミットを取り消す(履歴を保持したまま新しいコミットを作成):

git revert <commit-hash>

未コミットの編集を破棄する(最後のコミットの状態に戻す):

git restore .

履歴を保持するため、git reset --hard よりも git revert を優先してください。

実験的な変更をテストする場合

リスクのある変更を行う前にブランチを作成します。

cd /home/claude/skill-name

# Create and switch to experiment branch
git checkout -b experiment-new-approach

# Make changes, test
# ... edit files ...
git add .
git commit -m "Experiment: alternative validation"

# If successful, merge back
git checkout main
git merge experiment-new-approach
git branch -d experiment-new-approach

# If failed, abandon and return to main
git checkout main
git branch -D experiment-new-approach

2 つのスキルバージョンを比較する場合

ユーザーが 2 つのバージョンをアップロードまたは提供した場合:

cd /home/claude
mkdir -p compare

# Extract both versions
unzip /mnt/user-data/uploads/skill-v1.zip -d compare/v1
unzip /mnt/user-data/uploads/skill-v2.zip -d compare/v2

# Initialize git in each
cd compare/v1 && git init && git add . && git commit -m "Version 1"
cd ../v2 && git init && git add . && git commit -m "Version 2"

# Compare
cd ../v1
git diff --no-index . ../v2

または、git を使わずに diff を直接使います。

diff -ur compare/v1 compare/v2

スキルをパッケージ化する場合

zip 化する前に、作業ツリーがクリーンであることを確認します。

cd /home/claude/skill-name
git status  # Should show no uncommitted changes
git log --oneline  # Review history

# Package (excludes .git automatically with -x)
cd /home/claude
zip -r /mnt/user-data/outputs/skill-name.zip skill-name/ -x "*.git*"

ワークフローへの統合

スキルの作成中:

  1. init_skill.sh を実行する
  2. すぐに:git init && git add . && git commit -m "Initial structure"
  3. SKILL.md を編集する
  4. コミットする:git add . && git commit -m "Add: core documentation"
  5. 編集を続け、主要な変更を行うたびにコミットする

スキルの編集中:

  1. str_replace または bash で変更する
  2. 必要に応じてテストする
  3. コミットする:git add <file> && git commit -m "Fix: corrected example"
  4. 繰り返す

納品前:

  1. 履歴を確認する:git log --oneline
  2. クリーンな状態であることを確認する:git status
  3. -x を指定して .git を除外してパッケージ化する

設定

プロンプトが表示されないよう、セッションごとに git のユーザー情報を一度設定します。

git config --global user.name "Claude"
git config --global user.email "[email protected]"

よくある問題

「not a git repository」 → 最初に git init を実行します

「nothing to commit」
→ 変更がないか、git add を忘れています

コミットメッセージのエディターが開く → コミット時は必ず -m "message" を使用します

ベストプラクティス

キー入力のたびではなく、論理的な変更を行うたびにコミットします。現在形で、内容が分かるコミットメッセージを使います。実験的な変更にはブランチを作成します。進捗を追跡するため、git log --oneline を頻繁に使います。

制限事項

/home/claude 内の git リポジトリはセッション間でリセットされます。バージョン管理が保持されるのは、単一の開発セッション内のみです。ネットワークの制限により、リモートリポジトリへの push/pull はできません。

コメント