ADDED Requirements
2026-09-05 12:33:30作者:蔡丛锟
ADDED Requirements
Requirement: New Feature
The system SHALL do something new.
Scenario: Basic case
- WHEN user does X
- THEN system does Y
MODIFIED Requirements
Requirement: Existing Feature
Scenario: New scenario to add
- WHEN user does A
- THEN system does B
REMOVED Requirements
Requirement: Deprecated Feature
RENAMED Requirements
- FROM:
### Requirement: Old Name - TO:
### Requirement: New Name
格式上有三个值得注意的约定:
1. 需求以 `### Requirement: <名称>` 标题锚定,需求描述使用 **SHALL** 规范措辞(RFC 2119 风格);
2. scenario 以 `#### Scenario:` 标题组织,条件与断言采用 `WHEN / THEN`(可选 `AND` 续行)的 bullet 列表,使每一条场景都可以独立验证;
3. MODIFIED 分区里**只需要写出差异部分**——上例中 "Existing Feature" 下仅列了一个要新增的 scenario,而不必重复既有 scenario,这正是"智能合并"在格式层面的体现。
## 五、核心原则:意图而非整体替换
文档以 **Key Principle: Intelligent Merging** 一节强调了与程序化合并的本质区别:
> 与程序化合并不同,你可以应用**部分更新(partial updates)**:
> - 要新增一个 scenario,只需在 MODIFIED 下包含该 scenario——不必复制已有 scenario;
> - delta 表达的是*意图*(intent),而不是整体替换(wholesale replacement);
> - 用你的判断力(use your judgment)合理地合并变更。
这条原则直接约束了 Agent 的编辑行为:合并时必须"读懂"delta 的意图,把增量叠加到主规格上,而不是把 delta 内容原样粘贴、覆盖既有内容。
## 六、在 Halo 仓库中的真实印证
以下两个归档变更展示了该同步机制在 Halo 中的实际产物形态。
**案例一:纯 ADDED 的新 capability。** [2026-06-03-support-theme-screenshot-preview 变更的 delta spec](https://gitcode.com/GitHub_Trending/ha/halo/blob/2ab802d044112086bbcd2694d08dbd87cf7fb763/openspec/changes/archive/2026-06-03-support-theme-screenshot-preview/specs/theme-screenshot-preview/spec.md?utm_source=gitcode_repo_files) 只含一个 `## ADDED Requirements` 分区,定义了主题根目录 `screenshot.png/jpg/jpeg/webp` 暴露为 `Theme.status.screenshot` 公共预览图、静态路由只服务受支持的截图文件名(含路径穿越拒绝场景)、Console 优先使用 `status.screenshot` 而非 `spec.logo` 等三条需求。按步骤 4d 的约定,同步后生成的 [主规格](https://gitcode.com/GitHub_Trending/ha/halo/blob/2ab802d044112086bbcd2694d08dbd87cf7fb763/openspec/specs/theme-screenshot-preview/spec.md?utm_source=gitcode_repo_files) 在 ADDED 内容之外补上了 `# ... Specification` 标题与 `## Purpose` 小节,并把需求收敛进 `## Requirements` 之下——这正是"创建新主规格时添加 Purpose 小节(可简短,标记 TBD)"规则的直接体现,两份文件的逐字对照可以作为该规则的实例证据。
**案例二:ADDED 与 MODIFIED 混合。** [2026-07-03-simplify-console-menu-tree-management 变更的 menu-hierarchy delta spec](https://gitcode.com/GitHub_Trending/ha/halo/blob/2ab802d044112086bbcd2694d08dbd87cf7fb763/openspec/changes/archive/2026-07-03-simplify-console-menu-tree-management/specs/menu-hierarchy/spec.md?utm_source=gitcode_repo_files) 同时包含两个分区:`## ADDED Requirements` 新增"Console 菜单树 API 提供规范化层级""菜单删除级联删除所属菜单项"两条需求(每条含 10 个 WHEN/THEN 场景,覆盖无效父引用、环检测、兄弟优先级重算等边界);`## MODIFIED Requirements` 则只重写了"Console 菜单管理写入新层级字段"这一条既有需求的场景集(拖拽保存只发送单条 position update、失败后重载规范化树、删除菜单不批量 patch `Menu.spec.menuItems` 等)。该 delta 对应的 [主规格](https://gitcode.com/GitHub_Trending/ha/halo/blob/2ab802d044112086bbcd2694d08dbd87cf7fb763/openspec/specs/menu-hierarchy/spec.md?utm_source=gitcode_repo_files) 即为合并基线,可以看到合并后需求同时保留了基线场景与新 delta 中的增量场景——印证了"保留 delta 未提及的内容"这一护栏。
## 七、成功输出模板与护栏约束
**成功输出**要求 Agent 在完成后给出如下格式的摘要(原文模板保留):
Specs Synced:
Updated main specs:
:
- Added requirement: "New Feature"
- Modified requirement: "Existing Feature" (added 1 scenario)
:
- Created new spec file
- Added requirement: "Another Feature"
Main specs are now updated. The change remains active - archive when implementation is complete.
登录后查看全文
热门项目推荐
相关项目推荐
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0623
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
最新内容推荐
Godot Engine 的 thirdparty 目录:第三方库 Vendor 化、补丁管理与更新流程全解析PR <N> — <title>PPT Master 赞助机制详解:四类合作展示、项目边界与 Skill 分发中的赞助一致性守护Mem0 OpenCode 插件的 mem0-forget 技能:带确认的内存删除、按 ID 精确清除与会话级回滚实战指南agent-skills 接入 Codex 实战:插件安装、@ 调用与清单文件工作机制awesome-copilot 中的 ai-team-dev 开发智能体:Nova、Sage、Milo 三视角协作与六步交付工作流bat 内置语法资产开发指南:从新增高亮语言到语法回归测试的完整流程Kubernetes v1.20 发布说明深度解读:dockershim 弃用、APF 转 Beta 与 v1.20.x 系列安全修复全景Agno Demo AgentOS 实战:构建多后端 Wiki 智能体平台(本地/Git/Notion)Scrapy 下载处理器(Download Handlers)详解:按 URL 协议定制下载行为与源码级实现原理
项目优选
收起
deepin linux kernel
C
33
18
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
854
1.34 K
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.12 K
2.72 K
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
528
588
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
906
1.83 K
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.53 K
1.01 K
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
989
508
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.34 K
1.45 K
暂无描述
Markdown
892
5.79 K
openGauss kernel ~ openGauss is an open source relational database management system
C++
213
313