第 06 章 | 安装 OpenSpec

更新于 2026/5/9
💡 进群学习加 wx: agentupdate
(申请发送: agentupdate)

第 6 章:安装 OpenSpec

学习目标

让你的项目目录获得 OpenSpec 的规约能力。

安装

npm install -g @fission-ai/openspec
openspec --version
# 1.3.1 或更新

在项目里初始化

cd ~/work/learn-claude
openspec init

完成后目录变成:

flowchart TB
    Root["~/work/learn-claude/"] --> Specs["openspec/specs/
(空,等待累积)"] Root --> Changes["openspec/changes/"] Changes --> Archive["archive/
(空,已完成的 change)"] Root --> CC[".claude/
(可能已存在)"] style Specs fill:#e8f5e9 style Changes fill:#fff3e0 style Archive fill:#f3e5f5

每个目录的角色:

路径 含义 谁写谁读
openspec/specs/ 系统当前承诺的能力 由 archive 累积合并而来
openspec/changes/<name>/ 进行中的某个变更 propose 创建
openspec/changes/archive/ 已完成的变更历史 archive 移动到这里

4 个核心 skill

OpenSpec 在 Claude Code 里以 skill 形式存在。安装后你能用:

Skill 用途 何时用
/opsx:explore 探索想法,思考阶段 想法还模糊
/opsx:propose 把想法落成 change 工件 想清楚了
/opsx:apply 按 tasks.md 实现 决定动手
/opsx:archive 完成后归档,更新 specs 实现完毕

完整生命周期:

flowchart LR
    Idea["💡 想法"] -->|opsx:explore| Clear["清晰需求"]
    Clear -->|opsx:propose| Change["change 文件夹"]
    Change -->|opsx:apply| Code["代码 + 勾选"]
    Code -->|opsx:archive| Specs["specs/ 累积"]

    style Specs fill:#c8e6c9

检查安装是否成功

跑:

openspec list --json

输出应当是:

{
  "changes": []
}

→ 还没有任何 change,符合预期。

加入 git 控制

OpenSpec 文件应当全部进 git(这是它的核心价值——可版本化的需求):

cd ~/work/learn-claude
git init
echo ".env" > .gitignore
git add openspec/ .gitignore
git commit -m "init: openspec scaffold"

你现在能做什么

  • 初始化一个空白 OpenSpec 项目
  • 解释 specs/changes/archive 三个目录的角色
  • 知道 4 个 skill 各自什么时候用

下一章深入 OpenSpec 的世界观——为什么这套结构本身就解决了"需求漂移"问题。