@clawplays/ospec-cli 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.zh-CN.md CHANGED
@@ -1,549 +1,291 @@
1
- # OSpec
1
+ <h1><a href="https://ospec.ai/" target="_blank" rel="noopener noreferrer">OSpec</a></h1>
2
+
3
+ <p align="center">
4
+ <a href="https://www.npmjs.com/package/@clawplays/ospec-cli"><img src="https://img.shields.io/npm/v/%40clawplays%2Fospec-cli?style=for-the-badge&logo=npm&label=npm" alt="npm"></a>
5
+ <a href="https://www.npmjs.com/package/@clawplays/ospec-cli"><img src="https://img.shields.io/npm/dm/%40clawplays%2Fospec-cli?style=for-the-badge&logo=npm&label=downloads&cacheSeconds=300" alt="npm downloads"></a>
6
+ <a href="https://github.com/clawplays/ospec/stargazers"><img src="https://img.shields.io/github/stars/clawplays/ospec?style=for-the-badge&logo=github" alt="GitHub stars"></a>
7
+ <a href="LICENSE"><img src="https://img.shields.io/github/license/clawplays/ospec?style=for-the-badge&color=green" alt="License"></a>
8
+ </p>
9
+
10
+ <p align="center">
11
+ <img src="https://img.shields.io/badge/Node.js-18%2B-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node.js 18+">
12
+ <img src="https://img.shields.io/badge/npm-8%2B-CB3837?style=flat-square&logo=npm&logoColor=white" alt="npm 8+">
13
+ <img src="https://img.shields.io/badge/language-TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
14
+ <img src="https://img.shields.io/badge/workflow-3_steps-0F766E?style=flat-square" alt="3-step workflow">
15
+ </p>
16
+
17
+ <p align="center">
18
+ <a href="README.md">English</a> |
19
+ <strong>中文</strong> |
20
+ <a href="README.ja.md">日本語</a>
21
+ </p>
22
+
23
+ OSpec 是一个面向 AI 对话协作的文档驱动开发工作流,让你先用文档明确需求与变更,再驱动 AI 实现、验证与归档。
24
+
25
+ <p align="center">
26
+ <a href="docs/README.zh-CN.md">文档入口</a> |
27
+ <a href="docs/prompt-guide.zh-CN.md">提示词文档</a> |
28
+ <a href="docs/usage.zh-CN.md">使用说明</a> |
29
+ <a href="docs/project-overview.zh-CN.md">项目介绍</a> |
30
+ <a href="docs/installation.zh-CN.md">安装说明</a> |
31
+ <a href="https://github.com/clawplays/ospec/issues">Issues</a>
32
+ </p>
33
+
34
+ ## npm 安装
2
35
 
3
- OSpec 是一个面向 AI 协作交付的 CLI 工作流系统。
4
-
5
- 它不是一个“先生成一堆业务模板”的脚手架,而是一个协议壳优先的协作框架:先建立最小协作协议,再显式补齐项目知识层,最后用 change 流程管理需求的执行、验证和归档。
6
-
7
- 当前版本:
8
-
9
- - CLI:`0.1.1`
10
-
11
- 文档入口:
12
-
13
- - [项目介绍](docs/project-overview.zh-CN.md)
14
- - [安装说明](docs/installation.zh-CN.md)
15
- - [使用说明](docs/usage.zh-CN.md)
16
- - [提示词文档](docs/prompt-guide.zh-CN.md)
17
- - [Skills 安装说明](docs/skills-installation.zh-CN.md)
18
- - [GitLab 自定义 Fork 同步方案](docs/custom-fork-sync.zh-CN.md)
19
- - [Stitch 插件规范](docs/stitch-plugin-spec.zh-CN.md)
20
- - [Checkpoint 插件规范](docs/checkpoint-plugin-spec.zh-CN.md)
21
-
22
- ## OSpec 是什么
23
-
24
- OSpec 的核心目标,不是帮团队一次性生成固定项目结构,而是先把 AI 协作的基本规则落下来。
25
-
26
- 它做的事情可以概括成三层:
27
-
28
- - 先初始化最小协议壳,让项目进入统一协作状态
29
- - 再补齐项目知识层,让 AI 有稳定上下文可读
30
- - 最后用 active change 流程管理每个需求的执行、验证和收口
31
-
32
- 如果用更通俗的话说,OSpec 管的不是“先写什么业务页面”,而是“团队和 AI 应该按什么规则协作”。
33
-
34
- ## 想解决什么问题
35
-
36
- 在 AI 参与研发后,常见问题通常有这些:
37
-
38
- - AI 能写代码,但不知道项目里的执行规则
39
- - 需求做完以后,中间过程不可见,也很难回溯
40
- - 文档、技能文件、实现状态容易不同步
41
- - 不同 AI 客户端使用的协作协议不一致
42
- - 某些需求需要设计审批或额外门禁,但缺少统一入口
43
-
44
- OSpec 的思路不是直接给一个很重的业务模板,而是先把协议和门禁建立起来,让项目进入可检查、可追踪、可归档的状态。
45
-
46
- ## 三个核心概念
47
-
48
- ### 1. 协议壳
49
-
50
- 协议壳是项目最小可协作骨架,主要解决“项目先进入统一协作状态”。
51
-
52
- 初始化后,关键文件和目录通常包括:
53
-
54
- - `.skillrc`
55
- - `.ospec/`
56
- - `changes/active/`
57
- - `changes/archived/`
58
- - `SKILL.md`
59
- - `SKILL.index.json`
60
- - `for-ai/` 下的一组 AI 协作规则文档
61
-
62
- 可以把它理解成项目的“协作底座”。
63
-
64
- ### 2. 项目知识层
65
-
66
- 协议壳建立以后,项目还需要长期稳定的知识上下文。OSpec 用 `docs/project/` 和分层 `SKILL.md` 去承接这部分内容。
67
-
68
- 默认会补齐的项目文档包括:
69
-
70
- - `docs/project/overview.md`
71
- - `docs/project/tech-stack.md`
72
- - `docs/project/architecture.md`
73
- - `docs/project/module-map.md`
74
- - `docs/project/api-overview.md`
75
-
76
- 这一步的目标,是让 AI 后续不是盲写,而是有稳定上下文可以引用。
77
-
78
- ### 3. active change
79
-
80
- OSpec 不把一个需求散落在聊天记录里,而是给每个需求建立一个独立的执行容器。
81
-
82
- 每个 active change 里最关键的文件是:
83
-
84
- - `proposal.md`
85
- - `tasks.md`
86
- - `state.json`
87
- - `verification.md`
88
- - `review.md`
89
-
90
- 其中真正的执行状态真源是:
91
-
92
- - `state.json`
36
+ ```bash
37
+ npm install -g @clawplays/ospec-cli
38
+ ```
93
39
 
94
- 也就是说,项目不是靠“口头说已经完成”,而是靠状态文件和验证文件共同证明 change 到了什么阶段。
40
+ ## 推荐提示词
95
41
 
96
- ## 主流程
42
+ 大多数团队使用 OSpec,只要 3 步:
97
43
 
98
- OSpec 当前的主流程可以概括成四段:
44
+ 1. 在你的项目目录初始化项目
45
+ 2. 为文档更新、需求开发或 Bug 修复创建并推进一个 change
46
+ 3. 在需求验收通过后归档这个 change
99
47
 
100
- 1. 协议壳初始化
101
- 2. 项目知识层补齐
102
- 3. active change 执行
103
- 4. verify / archive / finalize 收口
48
+ ### 1. 在你的项目目录初始化项目
104
49
 
105
- 对应的核心命令是:
50
+ 推荐提示词:
106
51
 
107
- ```bash
108
- ospec status [path]
109
- ospec init [path]
110
- ospec docs generate [path]
111
- ospec new <change-name> [path]
112
- ospec progress [changes/active/<change>]
113
- ospec verify [changes/active/<change>]
114
- ospec archive [changes/active/<change>]
115
- ospec finalize [changes/active/<change>]
52
+ ```text
53
+ 使用 OSpec 初始化这个项目。
116
54
  ```
117
55
 
118
- ## 常见用法
119
-
120
- ### 1. 先看项目状态
56
+ Claude / Codex Skill 方式:
121
57
 
122
- ```bash
123
- ospec status .
58
+ ```text
59
+ 使用 $ospec 初始化这个项目。
124
60
  ```
125
61
 
126
- 这一步相当于先体检。它会告诉你:
127
-
128
- - 项目是否已经初始化
129
- - 缺哪些协议文件
130
- - 项目文档覆盖率如何
131
- - skills 是否完整
132
- - 当前是否存在 active changes
133
- - 下一步最推荐执行什么
134
-
135
- ### 2. 初始化协议壳
62
+ <details>
63
+ <summary>命令行</summary>
136
64
 
137
65
  ```bash
138
66
  ospec init .
67
+ ospec init . --summary "运营后台"
68
+ ospec init . --summary "运营后台" --tech-stack node,react,postgres
69
+ ospec init . --architecture "单体 Web 应用 + API + 统一鉴权" --document-language zh-CN
139
70
  ```
140
71
 
141
- 这一步只做最小初始化:
142
-
143
- - 创建 OSpec 协议壳
144
- - 不默认生成 Web 模板或业务 scaffold
145
- - 不自动创建第一个 change
146
-
147
- 这体现了 OSpec 的一个核心原则:先建立协作协议,不抢业务决策,也不猜项目类型。
72
+ 命令行说明:
148
73
 
149
- ### 3. 补齐项目知识层
150
-
151
- ```bash
152
- ospec docs generate .
153
- ```
74
+ - `--summary`:项目概况,会写入生成的项目文档
75
+ - `--tech-stack`:技术栈,使用逗号分隔,例如 `node,react,postgres`
76
+ - `--architecture`:简短的架构说明
77
+ - `--document-language`:生成文档的语言,通常使用 `zh-CN` 或 `en-US`
78
+ - 传了这些参数,就按你提供的内容生成项目说明
79
+ - 不传时,OSpec 会优先复用现有文档;如果没有,就先生成待补充的默认文档
154
80
 
155
- 这一步会补齐项目知识层文档、分层技能入口和索引等基础内容。
81
+ </details>
156
82
 
157
- 它的边界也很明确:
83
+ ### 2. 创建并推进一个 Change
158
84
 
159
- - 会补项目知识
160
- - 不会自动应用业务 scaffold
161
- - 不会自动开始一个需求
85
+ 文档更新、需求开发、重构、Bug 修复,都使用这一类方式。
162
86
 
163
- ### 4. 创建一个需求 change
87
+ 推荐提示词:
164
88
 
165
- ```bash
166
- ospec new landing-refresh .
89
+ ```text
90
+ 使用 OSpec 为这个需求创建并推进一个 change。
167
91
  ```
168
92
 
169
- 这一步不是直接开始写代码,而是先创建需求执行容器。
170
-
171
- 创建后,项目里会出现:
93
+ Claude / Codex Skill 方式:
172
94
 
173
- - `proposal.md`:记录背景、目标、范围、验收标准
174
- - `tasks.md`:记录任务清单
175
- - `state.json`:记录执行状态
176
- - `verification.md`:记录验证项
177
- - `review.md`:记录评审视角
95
+ ```text
96
+ 使用 $ospec-change 为这个需求创建并推进一个 change。
97
+ ```
178
98
 
179
- ### 5. 持续查看进度和风险
99
+ ![OSpec Change Slash Command 示例](docs/assets/ospecchange-slash-command.zh-CN.svg)
180
100
 
181
- 常用命令:
101
+ <details>
102
+ <summary>命令行</summary>
182
103
 
183
104
  ```bash
184
- ospec progress changes/active/landing-refresh
185
- ospec verify changes/active/landing-refresh
186
- ospec changes status .
105
+ ospec new docs-homepage-refresh .
106
+ ospec new fix-login-timeout .
107
+ ospec new update-billing-copy .
187
108
  ```
188
109
 
189
- 它们分别解决三个问题:
110
+ </details>
190
111
 
191
- - `progress`:当前 change 到了哪一步
192
- - `verify`:当前 change 的协议文件和验证项是否完整
193
- - `changes status`:整个项目所有 active changes 的 PASS / WARN / FAIL 汇总
112
+ ### 3. 验收通过后归档
194
113
 
195
- ### 6. 标准收口
114
+ 当需求已经完成部署、测试、QA 或业务验收后,再归档这个 change。
196
115
 
197
- 推荐使用:
116
+ 推荐提示词:
198
117
 
199
- ```bash
200
- ospec finalize changes/active/landing-refresh
118
+ ```text
119
+ 使用 OSpec 归档这个已验收通过的 change。
201
120
  ```
202
121
 
203
- `finalize` 是默认收口路径,它会按顺序执行:
122
+ Claude / Codex Skill 方式:
204
123
 
205
- - verify
206
- - 重建索引
207
- - archive
208
-
209
- 最后把 change 从 `changes/active/` 挪到 `changes/archived/`,并把仓库留在“可以手动提交 Git”的状态。
210
-
211
- ### 7. 显式队列模式
212
-
213
- 队列模式默认是保守接入:
214
-
215
- - `ospec new` 仍然只创建一个普通 active change
216
- - 不会因为仓库状态自动进入队列模式
217
- - 只有显式使用 `ospec queue ...` 或 `ospec run ...` 才会启动队列能力
124
+ ```text
125
+ 使用 $ospec 归档这个已验收通过的 change。
126
+ ```
218
127
 
219
- 核心命令:
128
+ <details>
129
+ <summary>命令行</summary>
220
130
 
221
131
  ```bash
222
- ospec queue add landing-refresh .
223
- ospec queue add billing-cleanup .
224
- ospec queue status .
225
- ospec queue next .
226
- ospec run start . --profile manual-safe
227
- ospec run step .
132
+ ospec verify changes/active/<change-name>
133
+ ospec finalize changes/active/<change-name>
228
134
  ```
229
135
 
230
- runner profile 说明:
231
-
232
- - `manual-safe`:只做显式队列跟踪和激活,不改你现有的手动 change 执行方式
233
- - `archive-chain`:在一次显式 `ospec run step` 中,如果当前 active change 已满足归档门禁,OSpec 会先 finalize/archive,再继续推进下一个 queued change
234
-
235
- 推荐给 AI 的描述方式:
236
-
237
- - 单个 change:`使用 OSpec 为这个需求创建并推进一个 change。`
238
- - 只建队列先不跑:`使用 OSpec 读取这份 TODO,把它拆成多个 change,建立队列,并先展示队列状态,不要马上执行。`
239
- - 显式按队列执行:`使用 OSpec 建立 change 队列,并用 ospec run manual-safe 显式推进。`
240
-
241
- ## 一个需求怎么流转
242
-
243
- 单个需求的推荐顺序是:
244
-
245
- 1. 明确上下文和影响范围
246
- 2. 创建或更新 `proposal.md`
247
- 3. 创建或更新 `tasks.md`
248
- 4. 根据 `state.json` 推进实现
249
- 5. 更新相关 `SKILL.md`
250
- 6. 重建 `SKILL.index.json`
251
- 7. 完成 `verification.md`
252
- 8. 满足门禁后归档
253
-
254
- 如果用一句话概括,就是:
255
-
256
- 需求进入
257
- -> 建 change
258
- -> 写 proposal
259
- -> 写 tasks
260
- -> 按状态推进实现
261
- -> 同步文档和技能
262
- -> 完成 verification
263
- -> verify 检查
264
- -> archive / finalize 收口
265
-
266
- 这个设计的价值是:
267
-
268
- - 每个需求都有独立容器
269
- - 每个阶段都有明确文档锚点
270
- - 完成状态不是“感觉差不多”,而是可检查
271
-
272
- ## 当前核心功能
273
-
274
- CLI 能力看,当前功能大致可以分成五组。
275
-
276
- ### 1. 项目初始化与诊断
277
-
278
- - `status`
279
- - `init`
280
- - `docs status`
281
- - `docs generate`
282
-
283
- 这组命令主要解决“项目是否进入协议化协作状态”。
284
-
285
- ### 2. 需求执行流程
286
-
287
- - `new`
288
- - `progress`
289
- - `verify`
290
- - `archive`
291
- - `finalize`
292
- - `changes status`
293
-
294
- 这组命令主要解决“一个需求如何从创建走到收口”。
295
-
296
- ### 3. 技能与索引管理
297
-
298
- - `skills status`
299
- - `skill status`
300
- - `skill install`
301
- - `index check`
302
- - `index build`
303
-
304
- 这组命令主要解决“AI 该从哪里读规则,以及规则是否同步”。
305
-
306
- ### 4. 插件化工作流
307
-
308
- - `plugins status`
309
- - `plugins enable stitch`
310
- - `plugins run stitch`
311
- - `plugins approve stitch`
312
- - `plugins reject stitch`
313
- - `plugins doctor stitch`
314
-
315
- 这组命令主要解决“某些需求除了代码之外,还需要额外阻断步骤”。
316
-
317
- 当前第一个插件是 `stitch`,主要面向页面设计验收。
318
-
319
- ### 5. 协议更新与分发
320
-
321
- - `update`
322
- - `skill install`
323
- - `skill install-claude`
324
-
325
- 这组能力让 OSpec 不只管理单个项目,还能把同一套协作协议同步给不同 AI 客户端。
326
-
327
- 其中 `ospec update [path]` 的边界是:
328
-
329
- - 会刷新协议文档、项目 tooling、Git hooks、托管安装的 skills,以及已启用插件的托管工作目录资产
330
- - 不会自动 `enable/disable` 插件
331
- - 不会自动调整已有 active changes 到新的插件工作流
332
- - 如果要启用 Stitch,仍需显式执行 `ospec plugins enable stitch [path]`
333
-
334
- ## 一个容易混淆的细节
335
-
336
- 当前版本里,有两个概念需要分开理解:
337
-
338
- - 结构层级
339
- - 工作流模式
340
-
341
- ### 结构层级
342
-
343
- 结构判断现在固定只按:
344
-
345
- - `none`
346
-
347
- 来理解。
348
-
349
- 它不再使用 `basic` / `full` 去描述“仓库结构层级”。
350
-
351
- ### 工作流模式
352
-
353
- 初始化出来的 `.skillrc` 默认工作流模式仍然是:
354
-
355
- - `full`
356
-
357
- 它影响的是:
358
-
359
- - 支持哪些 feature flags
360
- - 哪些 optional steps 会被激活
361
- - archive gate 需要检查什么
362
-
363
- 所以应当这样理解:
364
-
365
- - 结构层级表示项目是否完成协议化初始化
366
- - 工作流模式表示需求执行时采用多严格的流程
367
-
368
- ## Stitch 插件
369
-
370
- Stitch 体现了 OSpec 的插件化扩展能力。
371
-
372
- 它的思路不是把设计审核硬编码进主流程,而是:
373
-
374
- - 项目通过 plugin 启用能力
375
- - plugin 贡献 optional step
376
- - change 根据 flag 命中后激活这个 step
377
- - `verify / archive / finalize` 依据审批产物进行阻断
378
-
379
- 例如项目启用 Stitch 后,如果新 change 带这些 flags:
380
-
381
- - `ui_change`
382
- - `page_design`
383
- - `landing_page`
384
-
385
- 那么系统会激活:
386
-
387
- - `stitch_design_review`
388
-
389
- 并在 change 下生成:
390
-
391
- - `artifacts/stitch/approval.json`
392
-
393
- 如果这个审批文件没有通过,change 就不能声称已完成,也不能归档。
394
-
395
- 在页面设计评审场景下,这个门禁还要求:
396
-
397
- - 同一路由只能有一个 canonical layout
398
- - `light/dark` 必须是一套 layout 的主题变体,不能变成两套不同排版
399
- - 交付中必须给出 `screen mapping`
400
- - 旧稿和探索稿必须归档,不能与 canonical 页面并列
401
-
402
- 这说明 OSpec 的插件不是简单提醒,而是真正参与流程门禁。
403
-
404
- ## 设计理念
405
-
406
- ### 1. Protocol-shell-first
407
-
408
- 先建协议壳,再谈业务。
409
-
410
- 这样做的好处是:
411
-
412
- - 初始化足够轻
413
- - 不容易误判项目类型
414
- - 不会把一个还没想清楚的仓库直接塞成固定模板
415
-
416
- ### 2. 显式优于隐式
417
-
418
- OSpec 很少做“猜你想要什么”的事情。
419
-
420
- 例如:
421
-
422
- - `init` 不自动补 docs
423
- - `docs generate` 不自动建 change
424
- - `new` 不自动推进业务实现
425
-
426
- 每一步都尽量清晰、可控、可解释。
427
-
428
- ### 3. 文档是执行面的一部分
429
-
430
- 在 OSpec 里:
431
-
432
- - proposal 不是附属汇报材料
433
- - tasks 不是临时记事本
434
- - verification 不是最后补充说明
435
-
436
- 这些文档本身就是工作流的一部分,会直接影响后续能不能通过 verify 和 archive。
437
-
438
- ### 4. `state.json` 是状态真源
439
-
440
- 项目明确要求:
441
-
442
- - 以 `state.json` 作为当前执行状态依据
443
- - `verification.md` 不能替代 `state.json`
444
-
445
- 这让流程不会因为“说法不一致”而漂移。
446
-
447
- ### 5. 先门禁,再归档
136
+ 归档说明:
137
+
138
+ - 先完成你项目自己的部署、测试、QA 或验收流程
139
+ - 使用 `ospec verify` 确认当前 change 已满足归档条件
140
+ - 使用 `ospec finalize` 重建索引并归档这个已验收通过的 change
141
+
142
+ </details>
143
+
144
+ ## OSpec 的工作方式
145
+
146
+ ```text
147
+ ┌─────────────────────────────────────────────────────────────────┐
148
+ │ 1. 用户提出需求 │
149
+ │ “使用 OSpec 为这个任务创建并推进一个 change。” │
150
+ └─────────────────────────────────────────────────────────────────┘
151
+
152
+
153
+ ┌─────────────────────────────────────────────────────────────────┐
154
+ │ 2. 初始化到 change-ready │
155
+ │ ospec init │
156
+ │ - .skillrc │
157
+ │ - .ospec/ │
158
+ │ - changes/active + changes/archived │
159
+ │ - 根目录 SKILL 文件和 for-ai 规则文档 │
160
+ │ - docs/project/* 基础知识文档 │
161
+ │ - 复用已有文档或回退到占位文档 │
162
+ └─────────────────────────────────────────────────────────────────┘
163
+
164
+
165
+ ┌─────────────────────────────────────────────────────────────────┐
166
+ │ 3. 执行 │
167
+ │ ospec new <change-name> │
168
+ │ ospec progress │
169
+ └─────────────────────────────────────────────────────────────────┘
170
+
171
+
172
+ ┌─────────────────────────────────────────────────────────────────┐
173
+ │ 4. 部署并验证 │
174
+ │ 项目部署 / 测试 / QA │
175
+ │ ospec verify │
176
+ └─────────────────────────────────────────────────────────────────┘
177
+
178
+
179
+ ┌─────────────────────────────────────────────────────────────────┐
180
+ │ 5. 归档 │
181
+ │ ospec finalize │
182
+ │ 重建索引 + archive │
183
+ └─────────────────────────────────────────────────────────────────┘
184
+ ```
448
185
 
449
- OSpec 的收口不是“代码写完就提交”,而是:
186
+ ## 三个核心概念
450
187
 
451
- - 先检查流程是否完整
452
- - 再允许归档
453
- - 归档后再进入 Git 提交阶段
188
+ | 概念 | 说明 |
189
+ |------|------|
190
+ | **协议壳** | 最小协作骨架,包括 `.skillrc`、`.ospec/`、`changes/`、根目录 `SKILL.md`、`SKILL.index.json` 和 `for-ai/` 规则文档。 |
191
+ | **项目知识层** | 给 AI 持续读取的项目上下文,例如 `docs/project/*`、分层技能文件和索引状态。 |
192
+ | **Active Change** | 单个需求的独立执行容器,通常包含 `proposal.md`、`tasks.md`、`state.json`、`verification.md`、`review.md`。 |
454
193
 
455
- 这会让交付边界更清楚。
194
+ ## 功能特性
456
195
 
457
- ### 6. 插件化而不是硬编码
196
+ - **一步到 change-ready 的初始化**:`ospec init` 一次性创建协议壳和基础项目知识文档。
197
+ - **带追问能力的初始化**:在 AI 协作初始化中,如果缺少项目概况或技术栈,可以只追问一次;纯 CLI 初始化则直接落占位文档。
198
+ - **知识层维护命令**:`ospec docs generate` 用于后续刷新、修复或补齐项目知识层。
199
+ - **需求执行可追踪**:一个 change 可以持续对齐 proposal、tasks、state、verification、review。
200
+ - **显式队列能力**:`queue` 和 `run` 用于多 change 场景,不会默认偷偷进入队列模式。
201
+ - **插件工作流门禁**:内置支持 Stitch 设计审核和 Checkpoint 自动化检查。
202
+ - **skills 管理**:支持 Codex 和 Claude Code 的 OSpec skill 安装与检查。
203
+ - **标准收口路径**:`finalize` 负责验证、重建索引和归档,Git 提交仍保持手动可控。
458
204
 
459
- 像设计审核这类能力,不是直接写死在主流程里,而是通过 plugin 注入 step。
205
+ ## 插件功能
460
206
 
461
- 这意味着未来可以继续扩展:
207
+ OSpec 内置两个可选插件,用来把 UI 审核和流程验证接入到文档驱动交付流程中。
462
208
 
463
- - 设计评审
464
- - 安全检查
465
- - 其他审批能力
209
+ ### Stitch
466
210
 
467
- 而不用把主工作流改得越来越臃肿。
211
+ 用于页面设计审核与预览协作,适合落地页、营销页和 UI 变化较多的需求。
468
212
 
469
- ### 7. 同一套协议适配多个 AI 客户端
213
+ AI 对话方式:
470
214
 
471
- 当前项目不仅管理项目内部流程,还能把技能包同步给:
215
+ ```text
216
+ 使用 OSpec 帮我打开 Stitch 插件。
217
+ ```
472
218
 
473
- - Codex
474
- - Claude Code
219
+ Claude / Codex Skill 方式:
475
220
 
476
- 这意味着团队即使使用不同 AI 工具,也能尽量共享同一套协作协议。
221
+ ```text
222
+ 使用 $ospec 帮我打开 Stitch 插件。
223
+ ```
477
224
 
478
- ## 当前仓库说明
225
+ <details>
226
+ <summary>命令行</summary>
479
227
 
480
- 当前仓库本身首先是:
228
+ ```bash
229
+ ospec plugins enable stitch .
230
+ ```
481
231
 
482
- - OSpec 的实现与发布仓库
232
+ </details>
483
233
 
484
- 它主要包含这些部分:
234
+ ### Checkpoint
485
235
 
486
- - `dist/`:编译后的 CLI、commands、workflow、services、adapters
487
- - `assets/`:协议文档、约定模板、全局 skills、git hooks
488
- - `docs/`:对外说明文档和设计规范文档
489
- - `scripts/`:安装、发版、fork 同步相关脚本
490
- - `skill.yaml`、`SKILL.md`、`agents/`:技能打包和分发入口
236
+ 用于应用流程验证与自动化检查,适合提交流程、关键路径和验收前的运行验证。
491
237
 
492
- `ospec status .` 的结果看,当前仓库根目录并没有完整初始化成一个“被 OSpec 管理的业务项目”,它还缺:
238
+ AI 对话方式:
493
239
 
494
- - `.skillrc`
495
- - `changes/active/`
496
- - `changes/archived/`
240
+ ```text
241
+ 使用 OSpec 帮我打开 Checkpoint 插件。
242
+ ```
497
243
 
498
- 这说明当前仓库有两个不同身份:
244
+ Claude / Codex Skill 方式:
499
245
 
500
- - 它是 OSpec 工具本身的源码仓
501
- - 它不是一个已经用 OSpec 执行业务需求的示例业务仓
246
+ ```text
247
+ 使用 $ospec 帮我打开 Checkpoint 插件。
248
+ ```
502
249
 
503
- 因此更准确的理解是:
250
+ <details>
251
+ <summary>命令行</summary>
504
252
 
505
- - 这个仓库负责实现 OSpec
506
- - OSpec 的直接使用对象,是下游业务项目或新初始化目录
253
+ ```bash
254
+ ospec plugins enable checkpoint . --base-url http://127.0.0.1:3000
255
+ ```
507
256
 
508
- ## 当前行为特征
257
+ 说明:
509
258
 
510
- 通过实际命令验证,可以确认这些行为:
259
+ - `--base-url` 用来指定运行中的应用地址,供自动化检查使用
511
260
 
512
- - `ospec init` 只初始化协议壳,不会自动补项目 docs,也不会自动创建第一个 change
513
- - `ospec docs generate` 会补齐知识层和分层技能入口,但不会应用业务 scaffold
514
- - 当 Stitch 插件未启用时,`ui_change`、`page_design` 这类 flag 会被记录在 `proposal.md`,但会提示为 unsupported flags
515
- - 当 Stitch 插件启用后,同样的 flag 会真正激活 `stitch_design_review`,并自动生成 `artifacts/stitch/approval.json`
261
+ </details>
516
262
 
517
- 这几项特征正好体现了 OSpec 的几个核心设计:
263
+ ## 文档入口
518
264
 
519
- - 默认最小化
520
- - 显式扩展
521
- - 流程可检查
522
- - 插件可阻断
523
- - 队列能力只有在显式要求时才启动
265
+ ### 核心文档
524
266
 
525
- ## 快速体验顺序
267
+ - [文档总览](docs/README.zh-CN.md)
268
+ - [提示词文档](docs/prompt-guide.zh-CN.md)
269
+ - [使用说明](docs/usage.zh-CN.md)
270
+ - [项目介绍](docs/project-overview.zh-CN.md)
271
+ - [安装说明](docs/installation.zh-CN.md)
272
+ - [Skills 安装说明](docs/skills-installation.zh-CN.md)
526
273
 
527
- 如果想快速体验一遍主流程,推荐按这个顺序执行:
274
+ ### 插件高级说明
528
275
 
529
- ```bash
530
- ospec status demo
531
- ospec init demo
532
- ospec docs generate demo
533
- ospec new landing-refresh demo
534
- ospec changes status demo
535
- ospec progress demo/changes/active/landing-refresh
536
- ```
276
+ - [Stitch 插件规范](docs/stitch-plugin-spec.zh-CN.md)
277
+ - [Checkpoint 插件规范](docs/checkpoint-plugin-spec.zh-CN.md)
537
278
 
538
- 如果还想体验插件扩展能力,可以继续执行:
279
+ ## 仓库结构
539
280
 
540
- ```bash
541
- ospec plugins enable stitch demo
542
- ospec new home-hero-redesign demo --flags ui_change,page_design
281
+ ```text
282
+ dist/ 编译后的 CLI 运行时
283
+ assets/ 托管协议资产、hooks skill 载荷
284
+ docs/ 对外文档
285
+ scripts/ 发布和安装辅助脚本
286
+ .ospec/templates/hooks/ 随包分发的 Git hook 模板
543
287
  ```
544
288
 
545
- ## 总结
546
-
547
- 如果用一句话概括 OSpec,它不是帮团队“更快生成代码”的工具,而是帮团队“更稳地用 AI 做交付”的工具。
289
+ ## License
548
290
 
549
- 它最核心的价值,不是模板,不是页面,也不是脚手架,而是把 AI 协作这件事从“靠聊天记录推进”,变成“有协议壳、有知识层、有 change 容器、有门禁、有归档”的可管理流程。
291
+ 本项目使用 [MIT License](LICENSE)。