关于 slice
slice 是一项开发技能,用于将变更意图转化为范围明确的 Doctrine 工作单元。它指导编写范围文档、标记受影响路径、记录生命周期,并交接给设计与研究流程。
主要功能
- 01创建范围明确的变更单元
- 02记录边界与受影响路径
- 03添加范围相关选择器
- 04记录生命周期与关联
适用场景
- 01设计前界定代码变更范围
- 02区分 slice 与项目级决策
- 03为设计和研究准备变更
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ davidlee/ doctrine --skill slice安装后在 Claude Code 中输入/slice确认已加载。
详细介绍
Slice
你要将意图转化为具体且范围明确的变更单元。Slice 是一个连贯的变更——既不是项目级决策(那属于 ADR),也不是常青规范材料(.doctrine/spec/)。
流程
-
确认框架。 意图必须涉及代码变更,且当前没有已有的 slice 涵盖此变更。先获取约束:通过
/canon查阅 ADR、.doctrine/spec/tech/和约定;通过/retrieve-memory了解你将涉及的表面所对应子系统中的注意事项。 -
创建 slice:
doctrine slice new "<title>" [--slug <slug>]分配下一个 ID,并搭建
slice-nnn.toml(元数据、关联关系、生命周期状态——初始为proposed)和slice-nnn.md(范围文档)。 -
在
slice-nnn.md中明确范围:- 变更内容及原因
- 范围内与范围外的内容(明确边界)
- 受影响的表面——具体路径/模块
- 风险、假设和待解决问题
- 验证/收尾意图——如何判定“已完成”
将受影响的表面设为粗略的
scope-relevant选择器——粗略划定变更所在位置的路径/glob 边界,现在趁范围还清晰时记录:doctrine slice selector add <id> "src/foo/**" "src/bar.rs" --intent scope-relevant这些选择器有意保持宽泛(精确的触及范围由
/design确定)。它们会提供审计时的slice conformance差异;没有边界约束的 slice 就没有可与之对比的 git 实际变更。 -
在
slice-nnn.toml中记录结构化信息:元数据、生命周期状态。遵守存储规则——结构化数据放在 TOML 中,文字说明放在 MD 中,绝不在文字说明中放置可查询/派生的数据。关联关系应通过doctrine link编写,不要手动编写条目——该命令会根据RELATION_RULES(合法关系词汇;lib:reference/using-doctrine.md§ 关联实体)验证关系对。例如,governed_by关联 ADR,specs关联规范,supersedes关联先前的 slice。 -
检查层级。 如果工作实际涉及项目级决策 → 使用
doctrine adr new。如果是常青规范 → 编写技术规范(doctrine spec new tech)或产品规范(doctrine spec new product)。让 slice 始终对应一个可交付的变更;如果范围过大,就拆分。
下一步
你必须先明确设计再制定计划:记录生命周期变更(doctrine slice status <id> design——只写数字),然后交接给 /design。不要从一个尚未设计的 slice 直接跳到 /plan 或 /execute——/route 的关卡会禁止这样做。如果范围梳理时出现真正的权衡或未知问题,请使用 /consult。
运行 /design 前,按照 /research 完成设计前的研究环节,让设计建立在有引用的材料上,而不是凭记忆。