@clawplays/ospec-cli 0.1.1 → 0.2.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,233 @@
1
- # OSpec
1
+ <h1><a href="https://ospec.ai/" target="_blank" rel="noopener noreferrer">OSpec</a></h1>
2
2
 
3
- OSpec 是一个面向 AI 协作交付的 CLI 工作流系统。
3
+ [English](README.md)
4
4
 
5
- 它不是一个“先生成一堆业务模板”的脚手架,而是一个协议壳优先的协作框架:先建立最小协作协议,再显式补齐项目知识层,最后用 change 流程管理需求的执行、验证和归档。
5
+ <p align="center">
6
+ <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>
7
+ <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" alt="npm downloads"></a>
8
+ <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>
9
+ <a href="LICENSE"><img src="https://img.shields.io/github/license/clawplays/ospec?style=for-the-badge&color=green" alt="License"></a>
10
+ </p>
6
11
 
7
- 当前版本:
12
+ <p align="center">
13
+ <img src="https://img.shields.io/badge/Node.js-18%2B-339933?style=flat-square&logo=node.js&logoColor=white" alt="Node.js 18+">
14
+ <img src="https://img.shields.io/badge/npm-8%2B-CB3837?style=flat-square&logo=npm&logoColor=white" alt="npm 8+">
15
+ <img src="https://img.shields.io/badge/language-TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white" alt="TypeScript">
16
+ <img src="https://img.shields.io/badge/workflow-3_steps-0F766E?style=flat-square" alt="3-step workflow">
17
+ </p>
8
18
 
9
- - CLI:`0.1.1`
19
+ OSpec 是一个面向 AI 协作交付的 CLI 工作流系统,用来把仓库一次性初始化到可提 change 的状态,并通过可审计的 change 容器推进需求执行。
10
20
 
11
- 文档入口:
21
+ <p align="center">
22
+ <a href="docs/README.zh-CN.md">文档入口</a> |
23
+ <a href="docs/prompt-guide.zh-CN.md">提示词文档</a> |
24
+ <a href="docs/usage.zh-CN.md">使用说明</a> |
25
+ <a href="docs/project-overview.zh-CN.md">项目介绍</a> |
26
+ <a href="docs/installation.zh-CN.md">安装说明</a> |
27
+ <a href="https://github.com/clawplays/ospec/issues">Issues</a>
28
+ </p>
12
29
 
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
- 初始化后,关键文件和目录通常包括:
30
+ ## npm 安装
53
31
 
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`
32
+ ```bash
33
+ npm install -g @clawplays/ospec-cli
34
+ ```
93
35
 
94
- 也就是说,项目不是靠“口头说已经完成”,而是靠状态文件和验证文件共同证明 change 到了什么阶段。
36
+ ## 推荐提示词
95
37
 
96
- ## 主流程
38
+ 大多数团队使用 OSpec,只要 3 步:
97
39
 
98
- OSpec 当前的主流程可以概括成四段:
40
+ 1. 初始化项目
41
+ 2. 为文档更新、需求开发或 Bug 修复创建并推进一个 change
42
+ 3. 在需求验收通过后归档这个 change
99
43
 
100
- 1. 协议壳初始化
101
- 2. 项目知识层补齐
102
- 3. active change 执行
103
- 4. verify / archive / finalize 收口
44
+ ### 1. 初始化项目
104
45
 
105
- 对应的核心命令是:
46
+ 推荐提示词:
106
47
 
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>]
48
+ ```text
49
+ 使用 OSpec 初始化这个项目。
116
50
  ```
117
51
 
118
- ## 常见用法
119
-
120
- ### 1. 先看项目状态
52
+ Claude / Codex Skill 方式:
121
53
 
122
- ```bash
123
- ospec status .
54
+ ```text
55
+ 使用 $ospec 初始化这个项目。
124
56
  ```
125
57
 
126
- 这一步相当于先体检。它会告诉你:
127
-
128
- - 项目是否已经初始化
129
- - 缺哪些协议文件
130
- - 项目文档覆盖率如何
131
- - skills 是否完整
132
- - 当前是否存在 active changes
133
- - 下一步最推荐执行什么
134
-
135
- ### 2. 初始化协议壳
58
+ <details>
59
+ <summary>命令行</summary>
136
60
 
137
61
  ```bash
138
62
  ospec init .
63
+ ospec init . --summary "运营后台"
64
+ ospec init . --summary "运营后台" --tech-stack node,react,postgres
65
+ ospec init . --architecture "单体 Web 应用 + API + 统一鉴权" --document-language zh-CN
139
66
  ```
140
67
 
141
- 这一步只做最小初始化:
68
+ 命令行说明:
142
69
 
143
- - 创建 OSpec 协议壳
144
- - 不默认生成 Web 模板或业务 scaffold
145
- - 不自动创建第一个 change
70
+ - `--summary`:项目概况,会写入生成的项目文档
71
+ - `--tech-stack`:技术栈,使用逗号分隔,例如 `node,react,postgres`
72
+ - `--architecture`:简短的架构说明
73
+ - `--document-language`:生成文档的语言,通常使用 `zh-CN` 或 `en-US`
74
+ - 传了这些参数,就按你提供的内容生成项目说明
75
+ - 不传时,OSpec 会优先复用现有文档;如果没有,就先生成待补充的默认文档
146
76
 
147
- 这体现了 OSpec 的一个核心原则:先建立协作协议,不抢业务决策,也不猜项目类型。
77
+ </details>
148
78
 
149
- ### 3. 补齐项目知识层
79
+ ### 2. 创建并推进一个 Change
150
80
 
151
- ```bash
152
- ospec docs generate .
153
- ```
81
+ 文档更新、需求开发、重构、Bug 修复,都使用这一类方式。
154
82
 
155
- 这一步会补齐项目知识层文档、分层技能入口和索引等基础内容。
83
+ 推荐提示词:
156
84
 
157
- 它的边界也很明确:
158
-
159
- - 会补项目知识
160
- - 不会自动应用业务 scaffold
161
- - 不会自动开始一个需求
162
-
163
- ### 4. 创建一个需求 change
164
-
165
- ```bash
166
- ospec new landing-refresh .
85
+ ```text
86
+ 使用 OSpec 为这个需求创建并推进一个 change。
167
87
  ```
168
88
 
169
- 这一步不是直接开始写代码,而是先创建需求执行容器。
170
-
171
- 创建后,项目里会出现:
89
+ Claude / Codex Skill 方式:
172
90
 
173
- - `proposal.md`:记录背景、目标、范围、验收标准
174
- - `tasks.md`:记录任务清单
175
- - `state.json`:记录执行状态
176
- - `verification.md`:记录验证项
177
- - `review.md`:记录评审视角
91
+ ```text
92
+ 使用 $ospec-change 为这个需求创建并推进一个 change。
93
+ ```
178
94
 
179
- ### 5. 持续查看进度和风险
95
+ ![OSpec Change Slash Command 示例](docs/assets/ospecchange-slash-command.svg)
180
96
 
181
- 常用命令:
97
+ <details>
98
+ <summary>命令行</summary>
182
99
 
183
100
  ```bash
184
- ospec progress changes/active/landing-refresh
185
- ospec verify changes/active/landing-refresh
186
- ospec changes status .
101
+ ospec new docs-homepage-refresh .
102
+ ospec new fix-login-timeout .
103
+ ospec new update-billing-copy .
187
104
  ```
188
105
 
189
- 它们分别解决三个问题:
106
+ </details>
190
107
 
191
- - `progress`:当前 change 到了哪一步
192
- - `verify`:当前 change 的协议文件和验证项是否完整
193
- - `changes status`:整个项目所有 active changes 的 PASS / WARN / FAIL 汇总
108
+ ### 3. 验收通过后归档
194
109
 
195
- ### 6. 标准收口
110
+ 当需求已经完成部署、测试、QA 或业务验收后,再归档这个 change。
196
111
 
197
- 推荐使用:
112
+ 推荐提示词:
198
113
 
199
- ```bash
200
- ospec finalize changes/active/landing-refresh
114
+ ```text
115
+ 使用 OSpec 归档这个已验收通过的 change。
201
116
  ```
202
117
 
203
- `finalize` 是默认收口路径,它会按顺序执行:
204
-
205
- - verify
206
- - 重建索引
207
- - archive
208
-
209
- 最后把 change 从 `changes/active/` 挪到 `changes/archived/`,并把仓库留在“可以手动提交 Git”的状态。
210
-
211
- ### 7. 显式队列模式
212
-
213
- 队列模式默认是保守接入:
118
+ Claude / Codex Skill 方式:
214
119
 
215
- - `ospec new` 仍然只创建一个普通 active change
216
- - 不会因为仓库状态自动进入队列模式
217
- - 只有显式使用 `ospec queue ...` 或 `ospec run ...` 才会启动队列能力
120
+ ```text
121
+ 使用 $ospec 归档这个已验收通过的 change。
122
+ ```
218
123
 
219
- 核心命令:
124
+ <details>
125
+ <summary>命令行</summary>
220
126
 
221
127
  ```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 .
128
+ ospec verify changes/active/<change-name>
129
+ ospec finalize changes/active/<change-name>
228
130
  ```
229
131
 
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. 先门禁,再归档
448
-
449
- OSpec 的收口不是“代码写完就提交”,而是:
450
-
451
- - 先检查流程是否完整
452
- - 再允许归档
453
- - 归档后再进入 Git 提交阶段
454
-
455
- 这会让交付边界更清楚。
456
-
457
- ### 6. 插件化而不是硬编码
458
-
459
- 像设计审核这类能力,不是直接写死在主流程里,而是通过 plugin 注入 step。
460
-
461
- 这意味着未来可以继续扩展:
462
-
463
- - 设计评审
464
- - 安全检查
465
- - 其他审批能力
466
-
467
- 而不用把主工作流改得越来越臃肿。
468
-
469
- ### 7. 同一套协议适配多个 AI 客户端
470
-
471
- 当前项目不仅管理项目内部流程,还能把技能包同步给:
472
-
473
- - Codex
474
- - Claude Code
475
-
476
- 这意味着团队即使使用不同 AI 工具,也能尽量共享同一套协作协议。
477
-
478
- ## 当前仓库说明
479
-
480
- 当前仓库本身首先是:
481
-
482
- - OSpec 的实现与发布仓库
483
-
484
- 它主要包含这些部分:
485
-
486
- - `dist/`:编译后的 CLI、commands、workflow、services、adapters
487
- - `assets/`:协议文档、约定模板、全局 skills、git hooks
488
- - `docs/`:对外说明文档和设计规范文档
489
- - `scripts/`:安装、发版、fork 同步相关脚本
490
- - `skill.yaml`、`SKILL.md`、`agents/`:技能打包和分发入口
491
-
492
- 从 `ospec status .` 的结果看,当前仓库根目录并没有完整初始化成一个“被 OSpec 管理的业务项目”,它还缺:
493
-
494
- - `.skillrc`
495
- - `changes/active/`
496
- - `changes/archived/`
497
-
498
- 这说明当前仓库有两个不同身份:
499
-
500
- - 它是 OSpec 工具本身的源码仓
501
- - 它不是一个已经用 OSpec 执行业务需求的示例业务仓
502
-
503
- 因此更准确的理解是:
132
+ 归档说明:
133
+
134
+ - 先完成你项目自己的部署、测试、QA 或验收流程
135
+ - 使用 `ospec verify` 确认当前 change 已满足归档条件
136
+ - 使用 `ospec finalize` 重建索引并归档这个已验收通过的 change
137
+
138
+ </details>
139
+
140
+ ## OSpec 的工作方式
141
+
142
+ ```text
143
+ ┌─────────────────────────────────────────────────────────────────┐
144
+ │ 1. 用户提出需求 │
145
+ │ “使用 OSpec 为这个任务创建并推进一个 change。” │
146
+ └─────────────────────────────────────────────────────────────────┘
147
+
148
+
149
+ ┌─────────────────────────────────────────────────────────────────┐
150
+ │ 2. 初始化到 change-ready │
151
+ │ ospec init │
152
+ │ - .skillrc │
153
+ │ - .ospec/ │
154
+ │ - changes/active + changes/archived │
155
+ │ - 根目录 SKILL 文件和 for-ai 规则文档 │
156
+ │ - docs/project/* 基础知识文档 │
157
+ │ - 复用已有文档或回退到占位文档 │
158
+ └─────────────────────────────────────────────────────────────────┘
159
+
160
+
161
+ ┌─────────────────────────────────────────────────────────────────┐
162
+ │ 3. 执行 │
163
+ │ ospec new <change-name> │
164
+ │ ospec progress │
165
+ └─────────────────────────────────────────────────────────────────┘
166
+
167
+
168
+ ┌─────────────────────────────────────────────────────────────────┐
169
+ │ 4. 部署并验证 │
170
+ │ 项目部署 / 测试 / QA │
171
+ │ ospec verify │
172
+ └─────────────────────────────────────────────────────────────────┘
173
+
174
+
175
+ ┌─────────────────────────────────────────────────────────────────┐
176
+ │ 5. 归档 │
177
+ │ ospec finalize │
178
+ │ 重建索引 + archive │
179
+ └─────────────────────────────────────────────────────────────────┘
180
+ ```
504
181
 
505
- - 这个仓库负责实现 OSpec
506
- - OSpec 的直接使用对象,是下游业务项目或新初始化目录
182
+ ## 三个核心概念
507
183
 
508
- ## 当前行为特征
184
+ | 概念 | 说明 |
185
+ |------|------|
186
+ | **协议壳** | 最小协作骨架,包括 `.skillrc`、`.ospec/`、`changes/`、根目录 `SKILL.md`、`SKILL.index.json` 和 `for-ai/` 规则文档。 |
187
+ | **项目知识层** | 给 AI 持续读取的项目上下文,例如 `docs/project/*`、分层技能文件和索引状态。 |
188
+ | **Active Change** | 单个需求的独立执行容器,通常包含 `proposal.md`、`tasks.md`、`state.json`、`verification.md`、`review.md`。 |
509
189
 
510
- 通过实际命令验证,可以确认这些行为:
190
+ ## 功能特性
511
191
 
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`
192
+ - **一步到 change-ready 的初始化**:`ospec init` 一次性创建协议壳和基础项目知识文档。
193
+ - **带追问能力的初始化**:在 AI 协作初始化中,如果缺少项目概况或技术栈,可以只追问一次;纯 CLI 初始化则直接落占位文档。
194
+ - **知识层维护命令**:`ospec docs generate` 用于后续刷新、修复或补齐项目知识层。
195
+ - **需求执行可追踪**:一个 change 可以持续对齐 proposal、tasks、state、verification、review。
196
+ - **显式队列能力**:`queue` 和 `run` 用于多 change 场景,不会默认偷偷进入队列模式。
197
+ - **插件工作流门禁**:内置支持 Stitch 设计审核和 Checkpoint 自动化检查。
198
+ - **skills 管理**:支持 Codex 和 Claude Code 的 OSpec skill 安装与检查。
199
+ - **标准收口路径**:`finalize` 负责验证、重建索引和归档,Git 提交仍保持手动可控。
516
200
 
517
- 这几项特征正好体现了 OSpec 的几个核心设计:
201
+ ## 文档入口
518
202
 
519
- - 默认最小化
520
- - 显式扩展
521
- - 流程可检查
522
- - 插件可阻断
523
- - 队列能力只有在显式要求时才启动
203
+ ### 核心文档
524
204
 
525
- ## 快速体验顺序
205
+ - [文档总览](docs/README.zh-CN.md)
206
+ - [提示词文档](docs/prompt-guide.zh-CN.md)
207
+ - [使用说明](docs/usage.zh-CN.md)
208
+ - [项目介绍](docs/project-overview.zh-CN.md)
209
+ - [安装说明](docs/installation.zh-CN.md)
210
+ - [Skills 安装说明](docs/skills-installation.zh-CN.md)
211
+ - [GitLab 自定义 Fork 同步方案](docs/custom-fork-sync.zh-CN.md)
212
+ - [上游品牌保护说明](docs/upstream-brand-protection.zh-CN.md)
526
213
 
527
- 如果想快速体验一遍主流程,推荐按这个顺序执行:
214
+ ### 高级规范
528
215
 
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
- ```
216
+ - [Stitch 插件规范](docs/stitch-plugin-spec.zh-CN.md)
217
+ - [Stitch 插件路线图](docs/stitch-plugin-roadmap.zh-CN.md)
218
+ - [Checkpoint 插件规范](docs/checkpoint-plugin-spec.zh-CN.md)
219
+ - [当前 Vibe Coding Spec Flow](docs/current-vibe-coding-spec-flow.zh-CN.md)
537
220
 
538
- 如果还想体验插件扩展能力,可以继续执行:
221
+ ## 仓库结构
539
222
 
540
- ```bash
541
- ospec plugins enable stitch demo
542
- ospec new home-hero-redesign demo --flags ui_change,page_design
223
+ ```text
224
+ dist/ 编译后的 CLI 运行时
225
+ assets/ 托管协议资产、hooks skill 载荷
226
+ docs/ 对外文档
227
+ scripts/ 发布和安装辅助脚本
228
+ .ospec/templates/hooks/ 随包分发的 Git hook 模板
543
229
  ```
544
230
 
545
- ## 总结
546
-
547
- 如果用一句话概括 OSpec,它不是帮团队“更快生成代码”的工具,而是帮团队“更稳地用 AI 做交付”的工具。
231
+ ## License
548
232
 
549
- 它最核心的价值,不是模板,不是页面,也不是脚手架,而是把 AI 协作这件事从“靠聊天记录推进”,变成“有协议壳、有知识层、有 change 容器、有门禁、有归档”的可管理流程。
233
+ 本项目使用 [MIT License](LICENSE)。