关于 sem-integration
为处理 git diff 输出的 night-market skills 提供集成模式,说明如何检测 sem、使用语义差异并回退到 git 命令。还涵盖影响分析,以及将回退结果规范为与 sem 相同的实体结构。
主要功能
- 01按会话缓存 sem 可用性检查
- 02使用 sem 生成语义差异
- 03sem 不可用时回退到 git diff
- 04通过 sem 或 grep 分析影响
- 05将回退输出规范为 sem 结构
适用场景
- 01为 night-market skill 添加差异处理
- 02在缺少 sem 时维持差异处理
- 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