sem Integration

SkillAI & models

Provides sem semantic-diff detection, install-on-first-use, and fallback patterns. Use when building skills that consume git diff output.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the sem Integration skill

What this skill tells your AI

The instructions your AI receives, as published by athola/claude-night-market in plugins/leyline/skills/sem-integration/SKILL.md and read by ahel’s review.

Foundation patterns for using sem semantic diffs in night-market skills.

When To Use

Consult this skill when building or modifying skills that consume git diff output. It provides the detection, installation, and fallback patterns.

When NOT To Use

  • Direct sem CLI usage (just run sem diff yourself)
  • Skills that don't consume diff output

Detection Pattern

Check sem availability once per session:

# 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
}

When _sem_check returns 0, offer installation. See modules/detection.md for install-on-first-use logic and platform-specific commands.

Semantic Diff Pattern

Primary path (sem available):

sem diff --format json <baseline>

Fallback path (sem unavailable):

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>

See modules/fallback.md for output normalization that produces the same entity schema from both paths.

Impact Analysis Pattern

Primary path (sem available):

sem impact --json <file-or-entity>

Fallback path (sem unavailable): use rg/grep to trace callers by filename. See modules/fallback.md.

Exit Criteria

  • _sem_check result cached per session at ${CLAUDE_CODE_TMPDIR:-/tmp}/sem-available; detection command runs at most once per session regardless of how many skills invoke it
  • When sem is unavailable, install offer presented and fallback path used automatically (git diff --name-only --diff-filter= variants); no silent failure
  • Fallback output normalized to the same entity schema as sem JSON output per modules/fallback.md; consumers downstream see the same structure from both paths
  • Skills consuming this integration declare dependencies: [leyline:sem-integration] in frontmatter rather than reimplementing the detection pattern

Signals

GitHub stars
337
Forks
34
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
sem-integration
Source
github.com/athola/claude-night-market