更新规范Skill update-spec

这个技能用于在软件开发过程中,将学习到的有价值知识(如调试、实现或讨论中的发现)更新到相关的规范文档中,以捕获设计决策、项目约定、常见错误和模式,促进团队知识共享、提高开发效率和未来维护的准确性。关键词:软件开发、知识管理、规范更新、设计决策、项目约定、DevOps、文档化。

DevOps 1 次安装 2 次浏览 更新于 3/13/2026

name: update-spec description: “更新规范 - 将知识捕获到规范中”

更新规范 - 将知识捕获到规范中

当您学到有价值的东西时(来自调试、实现或讨论),使用此技能更新相关的规范文档。

时机:完成任务、修复错误或发现新模式后


何时更新规范

触发器 示例 目标规范
实现了一个功能 添加了使用 giget 的模板下载 相关的 backend/frontend/ 文件
做出了设计决策 使用类型字段 + 映射表以实现可扩展性 相关规范 + “设计决策” 部分
修复了一个错误 发现错误处理的微妙问题 backend/error-handling.md
发现了一个模式 找到了更好的代码结构方式 相关的 backend/frontend/ 文件
遇到了陷阱 了解到 X 必须在 Y 之前完成 相关规范 + “常见错误” 部分
建立了一个约定 团队就命名模式达成一致 quality-guidelines.md
新的思考触发器 “在完成 Y 之前不要忘记检查 X” guides/*.md(作为检查清单项,不是详细规则)

关键洞察:规范更新不仅针对问题。每个功能实现都包含未来 AI/开发者需要知道的设计决策和项目约定。


规范结构概述

.trellis/spec/
├── backend/           # 后端编码标准
│   ├── index.md       # 概述和链接
│   └── *.md           # 主题特定指南
├── frontend/          # 前端编码标准
│   ├── index.md       # 概述和链接
│   └── *.md           # 主题特定指南
└── guides/            # 思考检查清单(不是编码规范!)
    ├── index.md       # 指南索引
    └── *.md           # 主题特定指南

关键:规范与指南 - 知道区别

类型 位置 目的 内容风格
规范 backend/*.md, frontend/*.md 告诉 AI “如何编写代码” 详细规则、代码示例、禁止模式
指南 guides/*.md 帮助 AI “思考什么” 检查清单、问题、指向规范的指针

决策规则:问自己:

  • “这是 如何编写 代码” → 放在 backend/frontend/
  • “这是 在编写前考虑什么” → 放在 guides/

示例

学习内容 错误位置 正确位置
“在 Windows 上使用 reconfigure() 而不是 TextIOWrapper 来处理 stdout” guides/cross-platform-thinking-guide.md backend/script-conventions.md
“记住在编写跨平台代码时检查编码” backend/script-conventions.md guides/cross-platform-thinking-guide.md

指南应该是短的检查清单,指向规范,不要复制详细规则。


更新流程

步骤 1:识别您学到了什么

回答这些问题:

  1. 您学到了什么?(具体化)
  2. 为什么重要?(它防止什么问题?)
  3. 它属于哪里?(哪个规范文件?)

步骤 2:分类更新类型

类型 描述 操作
设计决策 为什么选择方法 X 而不是 Y 添加到 “设计决策” 部分
项目约定 如何在这个项目中做 X 添加到相关部分并附示例
新模式 发现的可重用方法 添加到 “模式” 部分
禁止模式 导致问题的东西 添加到 “反模式” 或 “不要” 部分
常见错误 容易犯的错误 添加到 “常见错误” 部分
约定 达成一致的标准 添加到相关部分
陷阱 非显而易见的行为 添加警告提示

步骤 3:阅读目标规范

在编辑前,阅读当前规范以:

  • 理解现有结构
  • 避免重复内容
  • 为更新找到正确部分
cat .trellis/spec/<category>/<file>.md

步骤 4:进行更新

遵循这些原则:

  1. 具体化:包括具体示例,不仅仅是抽象规则
  2. 解释原因:说明防止的问题
  3. 展示代码:为模式添加代码片段
  4. 保持简短:每个部分一个概念

步骤 5:更新索引(如果需要)

如果添加了新部分或规范状态更改,更新类别的 index.md


更新模板

添加设计决策

### 设计决策:[决策名称]

**上下文**:我们正在解决什么问题?

**考虑过的选项**:
1. 选项 A - 简要描述
2. 选项 B - 简要描述

**决策**:我们选择选项 X,因为...

**示例**:
\`\`\`typescript
// 如何实现
代码示例
\`\`\`

**可扩展性**:如何未来扩展这个...

添加项目约定

### 约定:[约定名称]

**什么**:约定的简要描述。

**为什么**:为什么在这个项目中这样做。

**示例**:
\`\`\`typescript
// 如何遵循此约定
代码示例
\`\`\`

**相关**:指向相关约定或规范的链接。

添加新模式

### 模式名称

**问题**:解决什么问题?

**解决方案**:方法的简要描述。

**示例**:
\`\`\`
// 好的
代码示例

// 坏的
代码示例
\`\`\`

**为什么**:解释为什么这个更好。

添加禁止模式

### 不要:模式名称

**问题**:
\`\`\`
// 不要这样做
坏代码示例
\`\`\`

**为什么不好**:问题的解释。

**替代方案**:
\`\`\`
// 这样做替代
好代码示例
\`\`\`

添加常见错误

### 常见错误:描述

**症状**:什么出错

**原因**:为什么发生

**修复**:如何纠正

**预防**:如何未来避免

添加陷阱

> **警告**:非显而易见行为的简要描述。
>
> 关于何时发生以及如何处理它的详细信息。

交互模式

如果您不确定要更新什么,回答这些提示:

  1. 您刚刚完成了什么?

    • [ ] 修复了一个错误
    • [ ] 实现了一个功能
    • [ ] 重构了代码
    • [ ] 讨论了方法
  2. 您学到或决定了什么?

    • 设计决策(为什么 X 而不是 Y)
    • 项目约定(如何做 X)
    • 非显而易见行为(陷阱)
    • 更好的方法(模式)
  3. 未来 AI/开发者需要知道这个吗?

    • 理解代码如何工作 → 是,更新规范
    • 维护或扩展功能 → 是,更新规范
    • 避免重复错误 → 是,更新规范
    • 纯粹一次性实现细节 → 可能跳过
  4. 它涉及哪个领域?

    • [ ] 后端代码
    • [ ] 前端代码
    • [ ] 跨层数据流
    • [ ] 代码组织/重用
    • [ ] 质量/测试

质量检查清单

完成规范更新前:

  • [ ] 内容具体且可操作吗?
  • [ ] 您包括代码示例了吗?
  • [ ] 您解释原因而不仅仅是内容了吗?
  • [ ] 它在正确的规范文件中吗?
  • [ ] 它重复了现有内容吗?
  • [ ] 新团队成员能理解吗?

与其他命令的关系

开发流程:
  学到东西 → $update-spec → 知识被捕获
       ↑                                  ↓
  $break-loop ←──────────────────── 未来会话受益
  (深度错误分析)
  • $break-loop - 深度分析错误,经常揭示需要规范更新
  • $update-spec - 实际进行更新(此技能)
  • $finish-work - 提醒您检查是否需要更新规范

核心哲学

规范是活文档。每个调试会话、每个“顿悟时刻”都是使规范更好的机会。

目标是 制度记忆

  • 一个人学到的东西,每个人都受益
  • AI 在一个会话中学到的东西,持久到未来会话
  • 错误成为文档化的护栏