关于 check-invariants
check-invariants 用于判断功能设计或代码差异是否符合其引用或涉及的架构约束。它提供带具体依据的建议性判定,而非通过或失败的门槛。
主要功能
- 01依据架构约束评估设计或代码差异
- 02检查已引用及明显相关的规则
- 03给出遵循、违反或不明确的结论
- 04为每项结论说明具体依据
适用场景
- 01实施前审查功能设计
- 02检查代码差异是否违反架构规则
- 03标出需人工判断的合规疑点
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jayden-dang/ skills --skill check-invariants安装后在 Claude Code 中输入/check-invariants确认已加载。
详细介绍
检查不变量
判断设计(或差异)是否遵守其所依赖的架构不变量。
这是 trace 的语义对应项。trace 会确定性地通过 grep 检查 Respects: ARCH-N 引用是否指向仍然有效的不变量——也就是检查其是否存在且仍然有效。它不会读取设计是否真正遵守规则。判断这件事是本技能的职责;由于这是一项判断,因此结果仅供参考:其结论可为评审提供信息,但绝不会成为合并的硬性门槛。
无需检查的情况
如果 docs/architecture/ 不存在,就说明没有架构主干——说明这一点后即停止。
本技能仅适用于已选择采用架构层的项目。
输入
- 架构主干:
docs/architecture/INDEX.md(以及任何docs/architecture/<domain>.md)。阅读其中的不变量——每条不变量由一个粗体的**ARCH-N**ID 和一条命令式规则组成。已划掉的~~**ARCH-N**~~表示已废弃;请忽略。 - 审查对象:功能的
design.md,或差异(git diff <base>...HEAD)。收集其中的Respects: ARCH-N引用;对于差异,还要评估所改代码明显涉及的不变量,即使未引用也要考虑。
判断
对于每条已引用的不变量(以及每条明显相关但未引用的不变量),阅读规则并检查设计或差异的内容,然后给出一个结论:
| 结论 | 含义 |
|---|---|
| 遵守 | 设计与不变量一致。 |
| 违反 | 设计做了不变量禁止的事,或遗漏了不变量要求的内容。 |
| 不明确 | 设计既未明确遵守,也未明确违反;应由人工检查。 |
每条结论都必须附上一句理由,指出不变量及具体位置(设计章节、文件或代码块)。不要仅仅换种说法复述不变量作为理由。
输出
check-invariants (3 citations, spine: docs/architecture/INDEX.md)
violates ARCH-2 design.md §Cross-module sync calls the persistence module directly (invariant: only via the event bus)
respects ARCH-4 every write goes through the migration guard
unclear ARCH-5 can't tell from the design whether the cache is invalidated on write
报告所有结论;不要省略不明确的结论——它们正是本技能的重点。本技能只返回发现,不给出通过/失败结果。调用方(code-review、execute-plan、establish-project)决定如何处理违反项。
评论
支持 Markdown