OpenSpec 实操,68k 星框架让 AI 编程变成可复核清单

OpenSpec 是一款获 68k 星的 AI 编程工作流工具,通过规格驱动开发解决上下文遗忘与行为漂移问题。它将需求固化为结构化 Markdown 文件,利用差异规格和五步标准链路,把 AI 编程转化为可复核清单。该框架支持增量生长与项目级配置注入,适合复杂重构及团队协作,但需注意 Windows 归档回滚、YAML 解析隐患等已知缺陷。其本质是状态治理协议,而非代码生成替代品。

发布于2026年9月18日 14:59
编辑小创
评论0
阅读0

OpenSpec 实操,68k 星框架让 AI 编程变成可复核清单

2026 年 9 月 16 日,GitHub 获得 68,666 颗星的 AI 编程工作流工具 OpenSpec 冲上 Hacker News 首页,最新 v1.13.1 版本在次日清晨火速释出。很多使用 Cursor、Claude Code 或 Codex 的开发者以为这是一个替代 IDE 的重型脚手架,其本质是提示词工程的产品化封装。它解决的不是大模型代码生成能力不足,而是需求散落在长对话历史中必然带来的上下文遗忘与行为漂移。

AI 编程陷入混乱的根本原因在于需求只活在临时聊天框里。OpenSpec 将模糊的需求、技术约束与验收标准固化成一组带结构的标准 Markdown 文件,再由命令行接口在恰当时机注入 AI 助手的上下文窗口,把凭感觉改代码变成先立字据再打勾交付。

架构逻辑与提示词工程落地

OpenSpec 的核心理念被称为规格驱动开发(Spec-Driven Development,简称 SDD),即在生成实际业务代码前,开发者必须与 AI 就“要改什么”达成书面共识。

项目初始化后会在根目录生成清晰的目录树:


openspec/
├── specs/              # 事实来源:记录系统当前的既有行为,按业务领域分目录
│   └── <domain>/spec.md
├── changes/            # 提议中的修改,每个变更独立建档
│   └── <change-name>/
│       ├── proposal.md # 变更意图、范围与实现方案
│       ├── design.md   # 技术方案与关键架构决策
│       ├── tasks.md    # 带复选框的结构化执行清单
│       └── specs/      # 差异规格:相对现状的增量变更
│           └── <domain>/spec.md
└── config.yaml         # 项目级上下文与约束规则

整个框架最关键的设计是差异规格(Delta Specs)。OpenSpec 不要求在每次修改时重写整个系统的规格说明,而是使用三段式区块界定变更范围:


## ADDED Requirements
### Requirement: Theme selection
The app SHALL let users switch between light and dark themes, defaulting to the system preference.
#### Scenario: User toggles dark mode
- **WHEN** the user clicks the theme toggle
- **THEN** the app switches to dark mode and persists the choice

## MODIFIED Requirements
(修改既有规格,注明 Previously: ...)

## REMOVED Requirements
(废弃已不需要的旧规格)

每一个需求使用声明式的 SHALL 或 MUST 规范描述,搭配 GIVEN/WHEN/THEN 场景。AI 负责根据讨论生成这些断言,开发者在敲定方案前进行文本审查,从而规避模型在大型任务中擅自做主的问题。

安装准备与核心工作流实操

安装前需确保本地 Node.js 版本达到 20.19.0 或更高。全局安装后即可在目标仓库初始化:


npm install -g @fission-ai/openspec@latest
cd your-project
openspec init

新手入门最常遇到的混淆在于执行位置:

  1. openspec ... 系列命令在终端命令行中执行,用于状态检查、配置和文件合并。
  2. /opsx:... 系列斜杠命令直接在 AI 助手的日常聊天框中敲入,是调用提示词技能的入口。

由于各家 AI 工具对技能语法的解析不同,命令名会略有变形。例如 Claude Code 与 Gemini CLI 使用 /opsx:propose,Cursor 和 GitHub Copilot 采用 /opsx-propose,Codex CLI 采用 $openspec-propose,而 Kimi Code 则映射为 /skill:openspec-。在执行 openspec init 后,终端会打印当前工具对应的准确前缀。


/opsx:explore ──► /opsx:propose ──► /opsx:apply ──► /opsx:sync ──► /opsx:archive
  (梳理现状)        (产出方案清单)    (逐项实现代码)    (合并增量规格)    (归档完成沉淀)

在日常开发中,建议遵循标准的五步链路:

  • /opsx:explore:先让 AI 阅读代码库、梳理路由与中间件走向,把模糊想法收敛为明确范围,期间不写入业务代码。
  • /opsx:propose:建立变更文件夹,一次性生成 proposal.mddesign.mdspecs/tasks.md
  • /opsx:apply:确认规划无误后让 AI 逐行实现代码,每完成一步在 tasks.md 中勾选对应项。
  • /opsx:sync:将已完成的差异规格合并回 openspec/specs/ 主干。
  • /opsx:archive:归档已交付任务,使主规格目录沉淀为系统的最新真实状态。

在已有代码库(Brownfield)中落地时,完全不需要预先给所有祖传代码补齐规格文档。OpenSpec 采用增量生长机制,开发者只需挑一个本周计划要做的小改动,让 AI 读取相关模块生成第一份差异规格,随着迭代推进,系统规格文档会自然成型。

项目配置与 CI 规则注入

通过在 openspec/config.yaml 中配置项目级上下文,可以省去每次在聊天中反复黏贴技术栈与代码规范的麻烦:


schema: spec-driven

context: |
  Tech stack: TypeScript, React, Node.js
  API conventions: RESTful, JSON responses
  Testing: Vitest for unit tests, Playwright for e2e
  Style: ESLint with Prettier, strict TypeScript

rules:
  proposal:
    - Include rollback plan
    - Identify affected teams
  specs:
    - "Use Given/When/Then format for scenarios"
  design:
    - Include sequence diagrams for complex flows

配置文件在解析时有严格的注入逻辑:context 内容会被 标签包裹,前置拼接到所有产物指令头部(体积上限 50KB);rules 内容则根据产物类型注入对应的 区域。修改该文件会即时生效,无需重启终端。

AI 编程在缺乏规格管控时往往会随着项目膨胀而逐渐失效,下表对比了不同协作阶段的典型失控问题与解决路径:

阶段核心问题留下的硬伤
单次提问 (Raw Prompt)需求全凭对话维持,多轮调试后早期约束被截断遗忘代码越改越乱,修好新 Bug 引发未知旧 Bug
规则注入 (.cursorrules)约束大多为全局通用准则,无法针对单次复杂重构建立验收边界缺乏分步跟踪机制,遇到大型改动模型容易中途放弃或假装完成
规格驱动 (OpenSpec)规划与落地强绑定,先审阅设计差异与任务清单,再让 AI 照单勾选文档需额外审查,对极小型单行改动存在一定流程成本

避坑指南与已知缺陷

在实际落地与持续集成过程中,需格外警惕官方近期修复及社区已确认的几个潜在问题:

1. Windows 环境归档可能静默回滚 在 Windows 11 环境下执行 openspec archive 时,可能因系统权限策略触发重命名 EPERM 报错。此时 CLI 虽然前置打印了成功更新规格的日志,但实际已触发事务撤销,导致主规格文件未生成、残留空目录且 Git 状态显示干净。临时绕过方式是将增量文件中的 ## ADDED Requirements 手动改成 ## Requirements 后合并至主文件,再手工移入归档目录。

2. 配置文件 YAML 冒号解析隐患config.yaml 的规则列表里,如果直接书写带冒号加空格的文本(例如 - Keep the "Why" section concrete: what breaks today),YAML 解析器会将其错误识别为映射而非字符串数组。该错误在终端只会打印一条 stderr 警告,而 CI 执行 openspec validate 时不会校验配置文件完整性,导致整套规则在无报错的情况下被静默丢弃。在编写规则时,务必给整行文本包裹双引号。

3. 任务清单标记严格性 在 v1.13.1 版本中,任务清单仅对 [x][X] 识别为已完成(支持中括号内包含空格)。若使用 - [~] 1.2 Deferred 等自定义符号,系统会统一判定为未完成,在执行归档校验时会直接拦截。

综合判断与发展边界

OpenSpec 不是又一个企图接管代码生成的庞大 Agent 框架,而是一套专为长生命周期项目设计的状态治理协议。它纠正了一种常见误读:许多开发者认为写提示词就是追求一句话直接生成完美应用,但在真实工程中,将 AI 约束在可复核的设计清单内逐步落地,远比赌单次生成的运气更为稳健。

它适合跨会话续做的复杂功能、重构任务与团队协作项目;对于纯探索性质的临时脚本或几行代码的微调,它的流程确实偏重。一个尚未彻底解决的工程问题在于:当主干业务逻辑演进数月后,如何低成本确保早前归档的历史规格文档不会与实际代码库形成事实上的语义脱节。

引用来源

  1. GitHub Repository: Fission-AI/openspec (Release v1.13.1), 2026-09-17, https://github.com/Fission-AI/openspec
  2. Hacker News: OpenSpec – Spec-driven development for AI coding assistants (Story 49734264), 2026-09-16, https://news.ycombinator.com/item?id=49734264
  3. GitHub Issue #1895: openspec archive fails with EPERM on Windows 11, 2026-09-16, https://github.com/Fission-AI/openspec/issues/1895
  4. GitHub Issue #1892: config.yaml parse failure prints warning, exits 0, 2026-09-15, https://github.com/Fission-AI/openspec/issues/1892
  5. GitHub Issue #1891: Rules key dropped when containing unquoted colon-space, 2026-09-14, https://github.com/Fission-AI/openspec/issues/1891

相关文章

Jev 实操指南,用概率闸门重构智能体决策流
AI 新闻资讯
2026年9月18日
0 条评论
小创

Jev 实操指南,用概率闸门重构智能体决策流

TypeSafe AI 推出系统一模型 Jev,作为智能体概率决策闸门,仅返回带校准概率的结构化结果而不生成文本。该模型具备低成本、低延迟及零输出错误率特性,支持 Choice、Score、Noul 三种提问原语。文章详解了其 API 调用、SDK 集成及推测式并行、置信度路由等五种落地模式,并指出其本质是强类型函数调用而非廉价 LLM。建议在生产环境中锁定版本、规避算术任务,并通过影子模式实测校准效果。

#智能体#AI 编程#提示词工程
阅读全文
Anthropic 开源知识工作插件库,111 个无代码技能包重塑智能体工作流
AI 教程知识
2026年9月18日
0 条评论
小创

Anthropic 开源知识工作插件库,111 个无代码技能包重塑智能体工作流

Anthropic 开源 knowledge-work-plugins 项目,提供 111 个无代码智能体技能包。该体系基于 Markdown 和 JSON 构建标准化模块,支持渐进式披露与 MCP 工具集成,标志提示词工程向软件工程化转型。内置 marketing 与 productivity 等插件展示了结构化输入及分层记忆范式,支持语义路由与轻量化定制。尽管存在多插件上下文竞争及云端连接器限制内网访问等问题,仍为智能体工作流提供了可复用的模块化规范。

#智能体#AI工具#提示词工程
阅读全文
把 LLM 当文字编辑而非代写枪手:两条铁律与改稿提示词
智能体工程
2026年9月18日
0 条评论
小创

把 LLM 当文字编辑而非代写枪手:两条铁律与改稿提示词

使用 LLM 辅助写作应将其定位为文字编辑而非代写枪手。核心原则包括绝不采纳模型生成的具体词汇及禁止其提供夸奖,以避免内容同质化。推荐采用“诊断-重写-比对”三阶段改稿流程,利用模型查找语法与逻辑硬伤,但由作者亲自重写。实践中可借助专用提示词库或本地工具提升效率。此外,需警惕长上下文压缩摘要可能引发的指令注入风险。AI 仅是批判性审视的效率放大器,人类创作者必须始终掌握写作主导权。

#AI写作#提示词工程#AI工具
阅读全文
互动讨论

评论区

围绕《OpenSpec 实操,68k 星框架让 AI 编程变成可复核清单》展开交流,未登录用户可浏览评论,登录后可参与讨论。

评论数
0
登录后参与评论
支持发表观点与回复一级评论,互动后将同步到消息中心。
登录后评论
暂无评论,欢迎成为第一个参与讨论的人。