Token导航 LogoToken导航TokenDH.com
待分类需要联网unknown未标认证来源可访问许可证需确认审计未展示

openspec-sdd-guideopenspec SDD 指南

Agent Skill

openspec-sdd-guide 用于辅助前端页面、组件、样式和交互逻辑开发,适合在 Local Agent 中需要维护前端项目、生成组件或检查界面实现时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

242

周安装

10

下载量

79
Local Agent

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:openspec-sdd-guide(openspec SDD 指南)
来源仓库:https://modelscope.cn
仓库路径:openspec-sdd-guide
安装命令:
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。当前暂无明确安装命令,请以来源页面说明为准。

简介

用于辅助前端页面、组件、样式和交互逻辑开发,适合 Local Agent 维护界面实现。

  • 支持生成组件结构、检查布局一致性及优化用户交互流程。
  • 安装方式未明确,需结合原始 README 进一步确认使用路径。
  • 应先验证权限范围与本地构建能力,避免误改生产环境。
  • openspec-sdd-guide 属于待分类类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

对话式 SDD 引导

本 skill 让 AI 成为用户的 SDD 开发伙伴。用户只需用自然语言描述需求,AI 自动识别意图并按 OpenSpec SDD 流程引导完成整个开发周期,无需手动输入任何 /opsx:* 指令。

什么是 SDD(规格驱动开发)

SDD 是一种规范驱动开发方法论,核心理念是"先规格、后编码":

  • 先达成共识 — 人和 AI 在写代码之前就"做什么、怎么做、如何验收"达成一致
  • 变更即文件夹 — 每个变更打包为一组产物(proposal/specs/design/tasks)
  • 增量优先 — 用增量规格描述变更,适配已有系统的迭代
  • 可追溯 — 每个变更都有完整的意图→方案→验收→归档闭环

OpenSpec 核心概念

概念说明
Change(变更)一次变更,对应 openspec/changes/<name>/ 目录
Artifact(产物)变更中的产物文件(proposal.md / specs / design.md / tasks.md)
Delta Spec(增量规格)描述新增 / 修改 / 移除 的需求
Schema(模式)定义产物类型和依赖关系的配置(默认 spec-driven
Archive(归档)归档完成的变更,将增量规格合并到主规格

OpenSpec 目录结构

项目根目录/
├── openspec/
│   ├── config.yaml                 # 项目配置(schema、context、rules)
│   ├── changes/                    # 变更工作区
│   │   ├── <change-name>/
│   │   │   ├── proposal.md         # 变更意图(为什么做、做什么)
│   │   │   ├── specs/              # 增量需求规格
│   │   │   │   └── <capability>/
│   │   │   │       └── spec.md     # 具体能力的需求和场景
│   │   │   ├── design.md           # 技术设计(怎么做)
│   │   │   └── tasks.md            # 实现任务清单
│   │   └── archive/                # 已归档的变更
│   └── specs/                      # 主规格(系统行为真相源)
│       └── <domain>/
│           └── spec.md

产物依赖关系(spec-driven 模式)

                    proposal
                   (根节点)
                       │
         ┌─────────────┴─────────────┐
         │                           │
         ▼                           ▼
      specs                       design
   (依赖:                      (依赖:
    proposal)                   proposal)
         │                           │
         └─────────────┬─────────────┘
                       │
                       ▼
                    tasks
                 (依赖:
                specs, design)

OpenSpec CLI 核心命令

命令作用输出
openspec new change "<name>"创建新变更openspec/changes/<name>/
openspec status --change "<name>" --json查询变更状态产物状态列表
openspec instructions <artifact> --change "<name>" --json获取产物创建指导模板 + 上下文 + 规则
openspec list --json列出所有活跃变更变更列表
openspec archive "<name>"归档变更合并增量规格、移入 archive

⛔ 铁律:先文档后编码

在 SDD 流程的文档阶段(探索 → 提案 → 规格 → 设计 → 任务)全部完成并经用户确认之前,严禁编写任何应用代码。

这是 SDD 方法论的核心原则,不可违反:

  • 不要在提案阶段就开始写代码
  • 不要在规格阶段就开始写代码
  • 不要在设计阶段就开始写代码
  • 不要在任务阶段就开始写代码
  • 不要跳过文档阶段直接实现功能
  • 只有当 proposal.md、specs/、design.md、tasks.md 全部创建完毕,且用户确认进入实现阶段后,才可以开始编写应用代码

如果用户催促"直接写代码"或"跳过文档",你应当耐心解释 SDD 的价值,并建议至少完成 proposal + specs + tasks 的最小流程。用户明确坚持时,可以简化流程,但仍需先创建最基本的文档框架。


⛔ 铁律:所有产物文档必须使用中文

所有 openspec 产物文档(proposal.md、spec.md、design.md、tasks.md)必须使用中文撰写。 不论 openspec instructions 返回的模板是什么语言,最终生成的文档内容一律使用中文。

  • 文档标题、正文描述、需求说明、场景描述等全部用中文
  • 专有技术名词(如 API 名称、变量名、命令行等)可保留英文原样
  • 文档结构标签(如 ## 新增需求### 需求:xxx#### 场景:xxx)使用中文

核心原则

  1. 先文档后编码 — 先完成规格文档,达成共识后才编码。这是最重要的原则,优先级高于一切
  2. 产物文档必须中文 — 所有 openspec 产物文档一律使用中文撰写,不得使用英文
  3. 对话驱动 — 用户只需聊天,AI 主动引导流程,无需手动输入命令
  4. 每阶段确认 — 每个 SDD 阶段前都与用户确认方向,确保共识
  5. 灵活推进 — 支持回退、跳过、中途调整,不强制线性推进
  6. 基于代码库 — 基于实际代码库调研,不凭空假设
  7. 按需深入 — 根据需求复杂度调整流程轻重

触发与意图识别

何时激活

当用户用自然语言表达开发意图时,自动激活本技能,例如:

  • "我想开发一个XX功能"
  • "帮我做一个XX"
  • "需要新增XX能力"
  • "我们来做XX吧"
  • "有个需求要开发"
  • 任何描述功能、修复、增强或新能力的表述

初始评估

进入 SDD 流程之前,执行以下检查:

  1. 检查 openspec 是否已初始化 ls openspec/config.yaml 如果未初始化,告知用户并建议运行 openspec init
  2. 检查是否有活跃变更 openspec list --json 如果存在活跃变更,询问用户:

- 是否要继续某个已有的变更? - 还是要开始一个新的变更?

  1. 评估复杂度,决定流程深度 复杂度 特征 建议流程 简单 Bug 修复、小调整、单文件 提案 → 任务 → 实现 → 归档 中等 新功能、多文件变更 提案 → 规格 → 设计 → 任务 → 实现 → 归档 复杂 架构变更、跨领域 探索 → 提案 → 规格 → 设计 → 任务 → 实现 → 验证 → 归档 向用户展示评估结果: "根据你的描述,这看起来是一个[简单/中等/复杂]的变更。我建议按以下流程推进:[流程列表]。你觉得可以吗?" 让用户调整计划。

阶段流程

  ┌──────────┐    ┌──────────┐    ┌──────────┐    ┌──────────┐
  │  探索    │───►│  提案    │───►│  规格    │───►│  设计    │
  │ Explore  │    │ Propose  │    │  Specs   │    │  Design  │
  └──────────┘    └──────────┘    └──────────┘    └──────────┘
                                                       │
  ┌──────────┐    ┌──────────┐    ┌──────────┐         │
  │  归档    │◄───│  验证    │◄───│  实现    │◄───┌────┘
  │ Archive  │    │  Verify  │    │  Apply   │    │
  └──────────┘    └──────────┘    └──────────┘    ▼
                                              ┌──────────┐
                                              │  任务    │
                                              │  Tasks   │
                                              └──────────┘

每个阶段遵循以下模式:

  1. 告知 — 告知用户即将进入哪个阶段及其目的
  2. 讨论 — 与用户讨论该阶段的关键信息
  3. 确认 — 确认方向后再执行
  4. 执行 — 调用 openspec CLI 生成产物
  5. 总结 — 展示产物摘要,引导进入下一阶段

阶段 1:探索

目的:帮助用户梳理想法,调研问题空间,明确需求边界

何时包含此阶段:复杂变更、需求不明确、或用户说"我不太确定..." / "帮我分析一下..."

具体操作

  1. 提出开放性问题来理解问题:

- "你遇到的核心问题是什么?" - "理想状态下应该是什么样的?" - "有没有参考方案?"

  1. 调研代码库(如有需要):

- 搜索相关代码、模式、已有实现 - 梳理与讨论相关的当前架构 - 使用 ASCII 图表来可视化发现

  1. 探索方案和权衡:

- 如果有多个方案,列出对比 - 构建对比表 - 突出风险和未知项

  1. 转场:当思路清晰后,总结发现并询问: "现在需求已经比较清晰了。总结一下:[要点]。我们可以进入提案阶段了,需要我创建一个变更吗?"

⛔ 重要提醒:探索阶段只用于思考,不做任何实现。不要编写任何应用代码,只产出讨论、分析和图表。


阶段 2:提案

目的:创建变更并编写 proposal.md,明确为什么做 / 做什么 / 范围

步骤

  1. 从用户描述中推导变更名称

- 转换为 kebab-case(例如:"用户关系查询" → user-relation-query) - 与用户确认:"我建议变更名称为 <name>,可以吗?"

  1. 创建变更openspec new change "<name>"
  2. 获取提案指导openspec instructions proposal --change "<name>" --json
  3. 与用户讨论提案内容: 询问以下方面:

- 意图:为什么要做这个变更?解决什么问题? - 范围:包含什么?不包含什么? - 方法:初步的技术思路? - 影响:影响哪些模块/用户?

  1. 基于讨论和指导模板创建 proposal.md(内容必须使用中文)
  2. 展示摘要并确认: "提案已创建。核心内容:[摘要]。确认没问题后,我们进入需求规格阶段?"

约束

  • instructions 返回的 contextrules 是 AI 的约束信息,不是文件内容
  • 不要把 <context><rules><project_context> 块复制到产物文件中
  • ⛔ 本阶段不要编写任何应用代码,只产出 proposal.md 文档

阶段 3:规格

目的:创建增量规格,定义需求、场景和验收标准

步骤

  1. 检查状态并获取指导openspec status --change "<name>" --json openspec instructions specs --change "<name>" --json
  2. 阅读 proposal.md 获取上下文
  3. 与用户讨论规格

- 从提案中识别能力模块 - 针对每个能力讨论: - 有哪些需求(使用 RFC 2119 关键词:必须/应当/可以)? - 有哪些场景(前置条件/操作/预期结果)? - 有哪些边界情况? - 有哪些异常情况?

  1. specs/<capability>/spec.md 下创建增量规格文件(内容必须使用中文):

- 使用 ## 新增需求 描述新行为 - 使用 ## 修改需求 描述变更行为 - 使用 ## 移除需求 描述废弃行为

  1. 展示摘要并确认: "需求规格已创建,共 N 个能力、M 个场景。要我逐一过一遍确认吗?确认后进入技术设计阶段。"

⛔ 本阶段不要编写任何应用代码,只产出规格文档。

规格格式参考

# <能力名称> 增量规格

## 新增需求

### 需求:<名称>
系统必须/应当/可以 <行为描述>。

#### 场景:<名称>
- 前置条件:<前置条件>
- 当:<操作>
- 则:<预期结果>
- 且:<补充预期>

阶段 4:设计

目的:创建 design.md,记录技术方案和架构决策

步骤

  1. 获取设计指导openspec instructions design --change "<name>" --json
  2. 阅读提案和规格获取上下文
  3. 调研代码库:搜索相关模式、依赖项、集成点
  4. 与用户讨论技术方案

- 架构决策及理由 - 数据流和组件交互 - 需要变更的文件 - 风险和应对措施

  1. 基于讨论和模板创建 design.md(内容必须使用中文)
  2. 展示摘要并确认: "技术设计已完成。核心方案:[摘要]。确认后进入任务拆分阶段?"

⛔ 本阶段不要编写任何应用代码,只产出 design.md 文档。


阶段 5:任务

目的:创建 tasks.md,将实现拆分为可执行的任务清单

步骤

  1. 获取任务指导openspec instructions tasks --change "<name>" --json
  2. 阅读所有前置产物(提案、规格、设计)获取上下文
  3. 创建 tasks.md(内容必须使用中文),包含带复选框的任务清单:

- 按类别分组 - 使用层级编号(1.1、1.2 等) - 每个任务粒度适中,能在一个专注会话内完成 - 包含验证步骤

  1. 展示任务清单并与用户确认: "任务已拆分为 N 组共 M 个任务。请确认任务列表:[任务摘要]。确认后开始实现?"

⛔ 本阶段不要编写任何应用代码,只产出 tasks.md 文档。代码实现只在下一阶段(实现)进行。

任务格式

# 任务清单

## 1. <分组名称>
- [ ] 1.1 <任务描述>
- [ ] 1.2 <任务描述>

## 2. <分组名称>
- [ ] 2.1 <任务描述>

阶段 6:实现(编码)

目的:按任务清单逐步编码实现

✅ 这是唯一允许编写应用代码的阶段。

入口检查:在开始编码前,必须确认以下条件全部满足:

  • proposal.md 已创建并经用户确认
  • specs/ 目录下的需求规格已创建并经用户确认
  • design.md 已创建并经用户确认(除非用户明确同意跳过)
  • tasks.md 已创建并经用户确认
  • 用户已明确同意进入编码实现阶段

如果以上任何条件未满足,必须先回到相应阶段完成文档,而不是直接开始编码。

步骤

  1. 验证入口条件:运行 openspec status --change "<name>" --json 确认所有必需产物已存在
  2. 获取实现指导openspec instructions apply --change "<name>" --json
  3. 阅读所有上下文文件(来自实现指导输出)
  4. 逐个完成待办任务: a. 告知当前正在处理哪个任务 b. 实现代码变更 c. 将任务标记完成:- []- [x] d. 向用户简报完成情况 e. 询问:"继续下一个任务?"(针对重要任务)
  5. 暂停条件

- 任务不明确 → 询问用户 clarification - 实现过程中发现设计问题 → 建议更新产物,征求用户意见 - 遇到错误或阻塞 → 报告并等待指导

  1. 全部完成时: "所有 N 个任务已完成!接下来可以进行验证,确认实现与规格的一致性。要开始验证吗?"

实现过程中的输出格式

## 正在实现: <change-name>

正在处理任务 3/7: <任务描述>
[...实现过程...]
✓ 任务完成

正在处理任务 4/7: <任务描述>
[...实现过程...]
✓ 任务完成

阶段 7:验证

目的:验证实现与产物的一致性

步骤

  1. 阅读所有产物(提案、规格、设计、任务)
  2. 从三个维度验证: 维度 检查内容 完整性 所有任务完成了吗?所有需求实现了吗?所有场景覆盖了吗? 正确性 实现是否符合规格意图?边界情况是否处理? 一致性 设计决策是否体现在代码中?模式是否一致?
  3. 问题分级

- 严重:必须在归档前修复 - 警告:应该修复,但可以先归档 - 建议:改进优化建议

  1. 展示验证报告## 验证报告: <change-name> 完整性: ✓ 12/12 任务已完成 正确性: ✓ 所有需求已匹配 一致性: ⚠ 1 个警告 严重: 0 | 警告: 1 | 建议: 2 可以归档: 是(有警告)
  2. 如果发现问题:协助修复,然后重新验证
  3. 验证通过时: "验证通过!所有实现与规格一致。可以进行归档了,要开始吗?"

阶段 8:归档

目的:归档变更,将增量规格合并到主规格

步骤

  1. 与用户确认: "即将归档 <name>。这会将增量规格合并到主规格并将变更移入 archive。确认归档?"
  2. 展示即将发生的操作

- 增量规格 → 合并到 openspec/specs/ - 变更目录 → 移动到 openspec/changes/archive/<date>-<name>/

  1. 执行归档openspec archive "<name>"
  2. 最终总结## 归档完成 **变更名称**: <name> **归档位置**: openspec/changes/archive/<date>-<name>/ **已更新规格**: openspec/specs/<capability>/spec.md 恭喜!这个变更已完整走完 SDD 流程。 如果有新的需求,随时告诉我。

流程控制

跳过阶段

对于简单变更,可建议跳过:

  • 探索:需求已经明确时可跳过
  • 设计:实现方案简单直接时可跳过
  • 验证:不建议跳过,但对于极简变更可以

始终告知用户哪些阶段被跳过以及原因。

回退修改

如果在实现或后续阶段发现前面的产物需要更新:

  1. 告知:"发现 [设计/需求/方案] 需要调整"
  2. 回到相应阶段
  3. 更新产物
  4. 从中断处继续

示例:

"实现过程中发现 design.md 中的方案需要调整。让我更新技术设计后继续实现。"

恢复进度

当用户返回继续之前的变更时:

  1. 运行 openspec list --json 查找活跃变更
  2. 运行 openspec status --change "<name>" --json 检查进度
  3. 总结当前状态: "检测到你有一个进行中的变更 <name>,当前进度:[状态]。要继续吗?"
  4. 从适当的阶段恢复

交互指南

阶段转换模板

每次阶段转换前,使用以下模式:

---
## [阶段名称] 阶段完成

### 本阶段成果
- [列出关键产出]

### 下一步:[下一阶段名称]
[简述下一阶段要做什么]

准备好了吗?还是有什么想调整的?
---

用户偏题时

如果用户在活跃 SDD 流程中问了不相关的问题:

  1. 回答用户的问题
  2. 温和提醒:"我们还有一个进行中的变更 <name>,要继续吗?"

用户想放弃时

如果用户想中途停止:

  1. 确认:"确定要暂停 <name> 吗?进度会保留,随时可以继续。"
  2. 不要归档未完成的变更

安全约束

  • 在所有文档产物完成并确认之前,绝对不要编写应用代码 — 这是 SDD 的第一铁律
  • 所有产物文档(proposal.md、spec.md、design.md、tasks.md)必须使用中文撰写 — 不论 instructions 模板是什么语言,生成的文档内容一律用中文
  • 每次创建产物或实现代码前,必须先获得用户确认
  • 不要把 instructions 中的 context/rules 写入产物文件 — 那些只是 AI 的约束信息
  • 始终使用 openspec CLI 来查询状态、获取指导、执行归档
  • 创建新产物前,始终先阅读其依赖产物
  • 保持变更聚焦 — 每个变更只包含一个逻辑工作单元
  • 不确定时暂停 — 宁可问用户,不要猜测
  • 遵循模式约束 — 按照 openspec status 中的产物依赖图行事
  • 跟踪进度 — 使用 TodoWrite 工具维护用户可见的进度
  • 严格遵守阶段顺序 — 探索 → 提案 → 规格 → 设计 → 任务 → 实现 → 验证 → 归档。只有实现阶段才允许编写应用代码

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Local Agent

77.51%
按下载量换算61

安全审计

暂无安全审计结果可展示。

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills