mcpField
S
sem-integration

sem-integration

github.com/athola开发34384 次安装1 天前更新
代码仓库

关于 sem-integration

为处理 git diff 输出的 night-market skills 提供集成模式,说明如何检测 sem、使用语义差异并回退到 git 命令。还涵盖影响分析,以及将回退结果规范为与 sem 相同的实体结构。

主要功能

  1. 01按会话缓存 sem 可用性检查
  2. 02使用 sem 生成语义差异
  3. 03sem 不可用时回退到 git diff
  4. 04通过 sem 或 grep 分析影响
  5. 05将回退输出规范为 sem 结构

适用场景

  1. 01为 night-market skill 添加差异处理
  2. 02在缺少 sem 时维持差异处理
  3. 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;无论有多少技能调用检测命令, 每个会话最多运行一次
  • sem 不可用时,提供安装选项并自动使用回退路径(git diff --name-only --diff-filter= 变体);不得静默失败
  • 按照 modules/fallback.md 将回退输出规范化为与 sem JSON 输出相同的实体架构;下游使用方 从两种路径看到的结构相同
  • 使用此集成的技能在 frontmatter 中声明 dependencies: [leyline:sem-integration], 而不是重新实现检测模式

评论

支持 Markdown