sem-integration について
git diff の出力を扱う night-market skills 向けの連携パターンをまとめたスキルです。sem の検出、セマンティック差分、git による代替処理、影響分析と出力形式の統一を扱います。
主な機能
- 01sem の有無をセッション単位でキャッシュ
- 02sem によるセマンティック差分
- 03sem 不在時の git diff へのフォールバック
- 04sem または grep による影響分析
- 05代替出力を sem の形式に統一
活用シーン
- 01night-market skill に差分処理を追加
- 02sem がない環境で差分処理を継続
- 03変更が呼び出し元に与える影響を追跡
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill sem-integrationインストール後、Claude Code で/sem-integrationを入力して読み込まれたか確認します。
同梱ファイルmodules/detection.mdmodules/fallback.md
詳細
sem 連携
night-market スキルで sem のセマンティック差分を使用するための基礎パターンです。
使用する場合
git diff の出力を利用するスキルを作成または変更するときに、このスキルを参照してください。検出、インストール、フォールバックのパターンを説明します。
使用しない場合
- sem CLI を直接使用する場合(
sem diffを実行してください) - diff の出力を利用しないスキル
検出パターン
セッションごとに一度、sem が利用可能か確認します。
# Detection (cache per session)
_sem_check() {
local cache="${CLAUDE_CODE_TMPDIR:-/tmp}/sem-available"
if [ -f "$cache" ]; then
cat "$cache"
return
fi
if command -v sem &>/dev/null; then
echo "1" | tee "$cache"
else
echo "0" | tee "$cache"
fi
}
_sem_check が 0 を返した場合は、インストールを提案します。
初回使用時のインストールロジックとプラットフォーム固有のコマンドについては、modules/detection.md を参照してください。
セマンティック差分のパターン
優先パス(sem が利用可能な場合):
sem diff --format json <baseline>
フォールバックパス(sem が利用できない場合):
git diff --name-only --diff-filter=A <baseline>
git diff --name-only --diff-filter=M <baseline>
git diff --name-only --diff-filter=D <baseline>
git diff --name-only --diff-filter=R <baseline>
両方のパスから同じエンティティスキーマを生成する出力の正規化については、modules/fallback.md を参照してください。
影響分析のパターン
優先パス(sem が利用可能な場合):
sem impact --json <file-or-entity>
フォールバックパス(sem が利用できない場合):rg/grep を使用して、ファイル名から呼び出し元を追跡します。詳しくは、modules/fallback.md を参照してください。
完了条件
-
_sem_checkの結果は、${CLAUDE_CODE_TMPDIR:-/tmp}/sem-availableにセッションごとにキャッシュされます。どのスキルから呼び出される場合でも、検出コマンドの実行はセッションごとに最大1回です - sem が利用できない場合は、インストールの提案を提示し、フォールバックパスを自動的に使用します(
git diff --name-only --diff-filter=の各種形式)。サイレントに失敗することはありません - フォールバックの出力は、
modules/fallback.mdに従って sem の JSON 出力と同じエンティティスキーマに正規化されます。下流のコンシューマーには、どちらのパスでも同じ構造が提供されます - この連携を利用するスキルは、検出パターンを再実装するのではなく、frontmatter で
dependencies: [leyline:sem-integration]を宣言します
コメント
Markdown 対応