mcpField
S
sem-integration

sem-integration

github.com/atholaDevelopment34384 installsUpdated 1d ago
Repository

About sem-integration

A reference skill for night-market skills that consume git diff output, describing how to detect sem, use semantic diffs, and fall back to git-based output. It also covers impact analysis and normalizing fallback results to the same entity schema.

Key features

  1. 01Session-cached sem availability check
  2. 02Semantic diff using sem
  3. 03Git diff fallback when sem is absent
  4. 04Impact analysis with sem or grep
  5. 05Normalize fallback output to sem schema

Use cases

  1. 01Add diff consumption to a night-market skill
  2. 02Keep diff processing working without sem
  3. 03Trace impact of changes across callers

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/athola/claude-night-market --skill sem-integration

After installing, type/sem-integrationin Claude Code to confirm it loaded.

Bundled filesmodules/detection.mdmodules/fallback.md

Details

From the project README

sem Integration

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

Comments

Markdown supported