mcpField
S
slice

slice

github.com/davidlee开发3142 次安装3 天前更新
代码仓库

关于 slice

slice 是一项开发技能,用于将变更意图转化为范围明确的 Doctrine 工作单元。它指导编写范围文档、标记受影响路径、记录生命周期,并交接给设计与研究流程。

主要功能

  1. 01创建范围明确的变更单元
  2. 02记录边界与受影响路径
  3. 03添加范围相关选择器
  4. 04记录生命周期与关联

适用场景

  1. 01设计前界定代码变更范围
  2. 02区分 slice 与项目级决策
  3. 03为设计和研究准备变更

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davidlee/doctrine --skill slice

安装后在 Claude Code 中输入/slice确认已加载。

详细介绍

Slice

你要将意图转化为具体且范围明确的变更单元。Slice 是一个连贯的变更——既不是项目级决策(那属于 ADR),也不是常青规范材料(.doctrine/spec/)。

流程

  1. 确认框架。 意图必须涉及代码变更,且当前没有已有的 slice 涵盖此变更。先获取约束:通过 /canon 查阅 ADR、.doctrine/spec/tech/ 和约定;通过 /retrieve-memory 了解你将涉及的表面所对应子系统中的注意事项。

  2. 创建 slice:

    doctrine slice new "<title>" [--slug <slug>]
    

    分配下一个 ID,并搭建 slice-nnn.toml(元数据、关联关系、生命周期状态——初始为 proposed)和 slice-nnn.md(范围文档)。

  3. 在 slice-nnn.md 中明确范围:

    • 变更内容及原因
    • 范围内与范围外的内容(明确边界)
    • 受影响的表面——具体路径/模块
    • 风险、假设和待解决问题
    • 验证/收尾意图——如何判定“已完成”

    将受影响的表面设为粗略的 scope-relevant 选择器——粗略划定变更所在位置的路径/glob 边界,现在趁范围还清晰时记录:

    doctrine slice selector add <id> "src/foo/**" "src/bar.rs" --intent scope-relevant
    

    这些选择器有意保持宽泛(精确的触及范围由 /design 确定)。它们会提供审计时的 slice conformance 差异;没有边界约束的 slice 就没有可与之对比的 git 实际变更。

  4. 在 slice-nnn.toml 中记录结构化信息:元数据、生命周期状态。遵守存储规则——结构化数据放在 TOML 中,文字说明放在 MD 中,绝不在文字说明中放置可查询/派生的数据。关联关系应通过 doctrine link 编写,不要手动编写条目——该命令会根据 RELATION_RULES(合法关系词汇;lib:reference/using-doctrine.md § 关联实体)验证关系对。例如,governed_by 关联 ADR,specs 关联规范,supersedes 关联先前的 slice。

  5. 检查层级。 如果工作实际涉及项目级决策 → 使用 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 完成设计前的研究环节,让设计建立在有引用的材料上,而不是凭记忆。

评论

支持 Markdown