@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.md +172 -488
- package/README.zh-CN.md +169 -485
- package/dist/cli.js +104 -8
- package/dist/commands/DocsCommand.js +3 -2
- package/dist/commands/InitCommand.js +69 -11
- package/dist/commands/SkillCommand.js +41 -19
- package/dist/commands/StatusCommand.js +27 -8
- package/dist/commands/UpdateCommand.js +19 -5
- package/dist/services/ProjectService.js +173 -359
- package/dist/services/templates/ProjectTemplateBuilder.js +4 -10
- package/dist/services/templates/TemplateInputFactory.js +14 -7
- package/dist/utils/subcommandHelp.js +5 -5
- package/package.json +9 -2
- package/scripts/postinstall.js +13 -7
package/README.md
CHANGED
|
@@ -1,549 +1,233 @@
|
|
|
1
|
-
|
|
1
|
+
<h1><a href="https://ospec.ai/" target="_blank" rel="noopener noreferrer">OSpec</a></h1>
|
|
2
2
|
|
|
3
3
|
[简体中文](README.zh-CN.md)
|
|
4
4
|
|
|
5
|
-
|
|
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>
|
|
11
|
+
|
|
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>
|
|
18
|
+
|
|
19
|
+
OSpec is an AI-first CLI workflow system for initializing repositories to a change-ready state and delivering requirements through auditable change containers.
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<a href="docs/README.md">Docs</a> |
|
|
23
|
+
<a href="docs/prompt-guide.md">Prompt Guide</a> |
|
|
24
|
+
<a href="docs/usage.md">Usage</a> |
|
|
25
|
+
<a href="docs/project-overview.md">Overview</a> |
|
|
26
|
+
<a href="docs/installation.md">Installation</a> |
|
|
27
|
+
<a href="https://github.com/clawplays/ospec/issues">Issues</a>
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
## Install With npm
|
|
6
31
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
- CLI: `0.1.1`
|
|
12
|
-
|
|
13
|
-
Documentation:
|
|
14
|
-
|
|
15
|
-
- [Project Overview](docs/project-overview.zh-CN.md)
|
|
16
|
-
- [Installation](docs/installation.zh-CN.md)
|
|
17
|
-
- [Usage](docs/usage.zh-CN.md)
|
|
18
|
-
- [Prompt Guide](docs/prompt-guide.zh-CN.md)
|
|
19
|
-
- [Skills Installation](docs/skills-installation.zh-CN.md)
|
|
20
|
-
- [GitLab Custom Fork Sync](docs/custom-fork-sync.zh-CN.md)
|
|
21
|
-
- [Stitch Plugin Spec](docs/stitch-plugin-spec.zh-CN.md)
|
|
22
|
-
- [Checkpoint Plugin Spec](docs/checkpoint-plugin-spec.zh-CN.md)
|
|
23
|
-
|
|
24
|
-
## What OSpec Is
|
|
25
|
-
|
|
26
|
-
The core goal of OSpec is not to generate a fixed project structure for a team in one shot. Its job is to lock in the basic rules of AI collaboration first.
|
|
27
|
-
|
|
28
|
-
What it does can be summarized in three layers:
|
|
29
|
-
|
|
30
|
-
- Initialize the minimum protocol shell so the project enters a unified collaboration state
|
|
31
|
-
- Fill in the project knowledge layer so AI has stable context to read
|
|
32
|
-
- Use the active change workflow to manage execution, verification, and closure for each request
|
|
33
|
-
|
|
34
|
-
In simpler terms, OSpec is not mainly about deciding which business page to build first. It is about defining the rules by which your team and your AI should collaborate.
|
|
35
|
-
|
|
36
|
-
## Problems It Tries to Solve
|
|
37
|
-
|
|
38
|
-
Once AI joins software delivery, common problems usually look like this:
|
|
39
|
-
|
|
40
|
-
- AI can write code, but does not know the execution rules of the project
|
|
41
|
-
- After a request is completed, the intermediate process is hard to see and hard to trace back
|
|
42
|
-
- Documentation, skill files, and implementation status drift out of sync
|
|
43
|
-
- Different AI clients use inconsistent collaboration protocols
|
|
44
|
-
- Some requests require design approval or extra gates, but there is no unified entry point
|
|
45
|
-
|
|
46
|
-
OSpec does not respond to this by shipping a heavy business scaffold. It establishes the protocol and gates first, so the project becomes inspectable, traceable, and archivable.
|
|
47
|
-
|
|
48
|
-
## Three Core Concepts
|
|
49
|
-
|
|
50
|
-
### 1. Protocol Shell
|
|
51
|
-
|
|
52
|
-
The protocol shell is the minimum collaborative skeleton of the project. Its main purpose is to bring the project into a unified collaboration state first.
|
|
53
|
-
|
|
54
|
-
After initialization, key files and directories usually include:
|
|
55
|
-
|
|
56
|
-
- `.skillrc`
|
|
57
|
-
- `.ospec/`
|
|
58
|
-
- `changes/active/`
|
|
59
|
-
- `changes/archived/`
|
|
60
|
-
- `SKILL.md`
|
|
61
|
-
- `SKILL.index.json`
|
|
62
|
-
- A set of AI collaboration rule documents under `for-ai/`
|
|
63
|
-
|
|
64
|
-
You can think of it as the collaboration foundation of the project.
|
|
65
|
-
|
|
66
|
-
### 2. Project Knowledge Layer
|
|
67
|
-
|
|
68
|
-
After the protocol shell is in place, the project still needs long-lived and stable knowledge context. OSpec uses `docs/project/` and layered `SKILL.md` files to carry that context.
|
|
69
|
-
|
|
70
|
-
Project docs generated by default include:
|
|
71
|
-
|
|
72
|
-
- `docs/project/overview.md`
|
|
73
|
-
- `docs/project/tech-stack.md`
|
|
74
|
-
- `docs/project/architecture.md`
|
|
75
|
-
- `docs/project/module-map.md`
|
|
76
|
-
- `docs/project/api-overview.md`
|
|
77
|
-
|
|
78
|
-
The goal of this step is to make sure AI is not writing blindly later. It should always have stable context to reference.
|
|
79
|
-
|
|
80
|
-
### 3. Active Change
|
|
81
|
-
|
|
82
|
-
OSpec does not leave a request scattered across chat history. It creates an independent execution container for every request.
|
|
83
|
-
|
|
84
|
-
The most important files inside each active change are:
|
|
85
|
-
|
|
86
|
-
- `proposal.md`
|
|
87
|
-
- `tasks.md`
|
|
88
|
-
- `state.json`
|
|
89
|
-
- `verification.md`
|
|
90
|
-
- `review.md`
|
|
91
|
-
|
|
92
|
-
The real source of truth for execution state is:
|
|
93
|
-
|
|
94
|
-
- `state.json`
|
|
32
|
+
```bash
|
|
33
|
+
npm install -g @clawplays/ospec-cli
|
|
34
|
+
```
|
|
95
35
|
|
|
96
|
-
|
|
36
|
+
## Recommended Prompts
|
|
97
37
|
|
|
98
|
-
|
|
38
|
+
Most teams only need 3 steps to use OSpec:
|
|
99
39
|
|
|
100
|
-
|
|
40
|
+
1. initialize the project
|
|
41
|
+
2. create and advance one change for a requirement, document update, or bug fix
|
|
42
|
+
3. archive the accepted change after deployment and validation are complete
|
|
101
43
|
|
|
102
|
-
1. Initialize
|
|
103
|
-
2. Fill in the project knowledge layer
|
|
104
|
-
3. Execute the active change
|
|
105
|
-
4. Close it out through `verify / archive / finalize`
|
|
44
|
+
### 1. Initialize The Project
|
|
106
45
|
|
|
107
|
-
|
|
46
|
+
Recommended prompt:
|
|
108
47
|
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
ospec init [path]
|
|
112
|
-
ospec docs generate [path]
|
|
113
|
-
ospec new <change-name> [path]
|
|
114
|
-
ospec progress [changes/active/<change>]
|
|
115
|
-
ospec verify [changes/active/<change>]
|
|
116
|
-
ospec archive [changes/active/<change>]
|
|
117
|
-
ospec finalize [changes/active/<change>]
|
|
48
|
+
```text
|
|
49
|
+
Use OSpec to initialize this project.
|
|
118
50
|
```
|
|
119
51
|
|
|
120
|
-
|
|
52
|
+
Claude / Codex skill mode:
|
|
121
53
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
ospec status .
|
|
54
|
+
```text
|
|
55
|
+
Use $ospec to initialize this project.
|
|
126
56
|
```
|
|
127
57
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
- Whether the project has already been initialized
|
|
131
|
-
- Which protocol files are missing
|
|
132
|
-
- How complete the project documentation is
|
|
133
|
-
- Whether skills are complete
|
|
134
|
-
- Whether active changes currently exist
|
|
135
|
-
- What the most recommended next step is
|
|
136
|
-
|
|
137
|
-
### 2. Initialize the Protocol Shell
|
|
58
|
+
<details>
|
|
59
|
+
<summary>Command line</summary>
|
|
138
60
|
|
|
139
61
|
```bash
|
|
140
62
|
ospec init .
|
|
63
|
+
ospec init . --summary "Internal admin portal for operations"
|
|
64
|
+
ospec init . --summary "Internal admin portal for operations" --tech-stack node,react,postgres
|
|
65
|
+
ospec init . --architecture "Single web app with API and shared auth" --document-language en-US
|
|
141
66
|
```
|
|
142
67
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
- Create the OSpec protocol shell
|
|
146
|
-
- Do not generate a web template or business scaffold by default
|
|
147
|
-
- Do not automatically create the first change
|
|
68
|
+
CLI notes:
|
|
148
69
|
|
|
149
|
-
|
|
70
|
+
- `--summary`: project overview text written into the generated docs
|
|
71
|
+
- `--tech-stack`: comma-separated stack list such as `node,react,postgres`
|
|
72
|
+
- `--architecture`: short architecture description
|
|
73
|
+
- `--document-language`: generated doc language, usually `en-US` or `zh-CN`
|
|
74
|
+
- if you pass these values, OSpec uses them directly when generating project docs
|
|
75
|
+
- if you do not pass them, OSpec reuses existing docs when possible and otherwise creates placeholder docs first
|
|
150
76
|
|
|
151
|
-
|
|
77
|
+
</details>
|
|
152
78
|
|
|
153
|
-
|
|
154
|
-
ospec docs generate .
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
This step generates the project knowledge layer docs, layered skill entry points, indexes, and other foundational assets.
|
|
79
|
+
### 2. Create And Advance A Change
|
|
158
80
|
|
|
159
|
-
|
|
81
|
+
Use this for requirement delivery, documentation updates, refactors, and bug fixes.
|
|
160
82
|
|
|
161
|
-
|
|
162
|
-
- It does not automatically apply a business scaffold
|
|
163
|
-
- It does not automatically start a request
|
|
83
|
+
Recommended prompt:
|
|
164
84
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
ospec new landing-refresh .
|
|
85
|
+
```text
|
|
86
|
+
Use OSpec to create and advance a change for this requirement.
|
|
169
87
|
```
|
|
170
88
|
|
|
171
|
-
|
|
89
|
+
Claude / Codex skill mode:
|
|
172
90
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
- `tasks.md`: task list
|
|
177
|
-
- `state.json`: execution status
|
|
178
|
-
- `verification.md`: verification items
|
|
179
|
-
- `review.md`: review perspective
|
|
91
|
+
```text
|
|
92
|
+
Use $ospec-change to create and advance a change for this requirement.
|
|
93
|
+
```
|
|
180
94
|
|
|
181
|
-
|
|
95
|
+

|
|
182
96
|
|
|
183
|
-
|
|
97
|
+
<details>
|
|
98
|
+
<summary>Command line</summary>
|
|
184
99
|
|
|
185
100
|
```bash
|
|
186
|
-
ospec
|
|
187
|
-
ospec
|
|
188
|
-
ospec
|
|
101
|
+
ospec new docs-homepage-refresh .
|
|
102
|
+
ospec new fix-login-timeout .
|
|
103
|
+
ospec new update-billing-copy .
|
|
189
104
|
```
|
|
190
105
|
|
|
191
|
-
|
|
106
|
+
</details>
|
|
192
107
|
|
|
193
|
-
|
|
194
|
-
- `verify`: whether the protocol files and verification items of the change are complete
|
|
195
|
-
- `changes status`: the PASS / WARN / FAIL summary for all active changes in the project
|
|
108
|
+
### 3. Archive After Acceptance
|
|
196
109
|
|
|
197
|
-
|
|
110
|
+
After the requirement has passed deployment, testing, QA, or other acceptance checks, archive the validated change.
|
|
198
111
|
|
|
199
|
-
Recommended
|
|
112
|
+
Recommended prompt:
|
|
200
113
|
|
|
201
|
-
```
|
|
202
|
-
|
|
114
|
+
```text
|
|
115
|
+
Use OSpec to archive this accepted change.
|
|
203
116
|
```
|
|
204
117
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
- verify
|
|
208
|
-
- rebuild indexes
|
|
209
|
-
- archive
|
|
210
|
-
|
|
211
|
-
At the end, the change is moved from `changes/active/` to `changes/archived/`, and the repository is left in a state where you can make a manual Git commit.
|
|
118
|
+
Claude / Codex skill mode:
|
|
212
119
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
- `ospec new` still creates one normal active change
|
|
218
|
-
- nothing enters queue mode implicitly
|
|
219
|
-
- queue behavior starts only when you explicitly use `ospec queue ...` or `ospec run ...`
|
|
120
|
+
```text
|
|
121
|
+
Use $ospec to archive this accepted change.
|
|
122
|
+
```
|
|
220
123
|
|
|
221
|
-
|
|
124
|
+
<details>
|
|
125
|
+
<summary>Command line</summary>
|
|
222
126
|
|
|
223
127
|
```bash
|
|
224
|
-
ospec
|
|
225
|
-
ospec
|
|
226
|
-
ospec queue status .
|
|
227
|
-
ospec queue next .
|
|
228
|
-
ospec run start . --profile manual-safe
|
|
229
|
-
ospec run step .
|
|
128
|
+
ospec verify changes/active/<change-name>
|
|
129
|
+
ospec finalize changes/active/<change-name>
|
|
230
130
|
```
|
|
231
131
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
- `init`
|
|
282
|
-
- `docs status`
|
|
283
|
-
- `docs generate`
|
|
284
|
-
|
|
285
|
-
This group mainly answers whether the project has entered protocol-based collaboration.
|
|
286
|
-
|
|
287
|
-
### 2. Request Execution Workflow
|
|
288
|
-
|
|
289
|
-
- `new`
|
|
290
|
-
- `progress`
|
|
291
|
-
- `verify`
|
|
292
|
-
- `archive`
|
|
293
|
-
- `finalize`
|
|
294
|
-
- `changes status`
|
|
295
|
-
|
|
296
|
-
This group mainly answers how a request moves from creation to closure.
|
|
297
|
-
|
|
298
|
-
### 3. Skills and Index Management
|
|
299
|
-
|
|
300
|
-
- `skills status`
|
|
301
|
-
- `skill status`
|
|
302
|
-
- `skill install`
|
|
303
|
-
- `index check`
|
|
304
|
-
- `index build`
|
|
305
|
-
|
|
306
|
-
This group mainly answers where AI should read the rules from, and whether those rules are synchronized.
|
|
307
|
-
|
|
308
|
-
### 4. Plugin-Based Workflow
|
|
309
|
-
|
|
310
|
-
- `plugins status`
|
|
311
|
-
- `plugins enable stitch`
|
|
312
|
-
- `plugins run stitch`
|
|
313
|
-
- `plugins approve stitch`
|
|
314
|
-
- `plugins reject stitch`
|
|
315
|
-
- `plugins doctor stitch`
|
|
316
|
-
|
|
317
|
-
This group mainly answers how to handle requests that need extra blocking steps beyond code.
|
|
318
|
-
|
|
319
|
-
The first plugin today is `stitch`, mainly for page design review.
|
|
320
|
-
|
|
321
|
-
### 5. Protocol Update and Distribution
|
|
322
|
-
|
|
323
|
-
- `update`
|
|
324
|
-
- `skill install`
|
|
325
|
-
- `skill install-claude`
|
|
326
|
-
|
|
327
|
-
This allows OSpec not only to manage a single project, but also to distribute the same collaboration protocol to different AI clients.
|
|
328
|
-
|
|
329
|
-
The boundary of `ospec update [path]` is:
|
|
330
|
-
|
|
331
|
-
- It refreshes protocol docs, project tooling, Git hooks, managed skills, and managed workdir assets for enabled plugins
|
|
332
|
-
- It does not automatically `enable/disable` plugins
|
|
333
|
-
- It does not automatically migrate existing active changes to a new plugin workflow
|
|
334
|
-
- If you want to enable Stitch, you still need to run `ospec plugins enable stitch [path]` explicitly
|
|
335
|
-
|
|
336
|
-
## One Easily Confused Detail
|
|
337
|
-
|
|
338
|
-
In the current version, two concepts need to be understood separately:
|
|
339
|
-
|
|
340
|
-
- structure level
|
|
341
|
-
- workflow mode
|
|
342
|
-
|
|
343
|
-
### Structure Level
|
|
344
|
-
|
|
345
|
-
Structure is currently determined only as:
|
|
346
|
-
|
|
347
|
-
- `none`
|
|
348
|
-
|
|
349
|
-
It no longer uses `basic` / `full` to describe repository structure level.
|
|
350
|
-
|
|
351
|
-
### Workflow Mode
|
|
352
|
-
|
|
353
|
-
The default workflow mode in `.skillrc` created by initialization is still:
|
|
354
|
-
|
|
355
|
-
- `full`
|
|
356
|
-
|
|
357
|
-
It affects:
|
|
358
|
-
|
|
359
|
-
- Which feature flags are supported
|
|
360
|
-
- Which optional steps are activated
|
|
361
|
-
- What the archive gate needs to check
|
|
362
|
-
|
|
363
|
-
So the correct way to read it is:
|
|
364
|
-
|
|
365
|
-
- Structure level indicates whether the project has completed protocol-based initialization
|
|
366
|
-
- Workflow mode indicates how strict the request execution process is
|
|
367
|
-
|
|
368
|
-
## Stitch Plugin
|
|
369
|
-
|
|
370
|
-
Stitch demonstrates OSpec's plugin-based extensibility.
|
|
371
|
-
|
|
372
|
-
The idea is not to hardcode design review into the main flow. Instead:
|
|
373
|
-
|
|
374
|
-
- The project enables a plugin to gain a capability
|
|
375
|
-
- The plugin contributes an optional step
|
|
376
|
-
- A change activates that step only if its flags hit the condition
|
|
377
|
-
- `verify / archive / finalize` are blocked or allowed based on approval artifacts
|
|
378
|
-
|
|
379
|
-
For example, after a project enables Stitch, if a new change includes these flags:
|
|
380
|
-
|
|
381
|
-
- `ui_change`
|
|
382
|
-
- `page_design`
|
|
383
|
-
- `landing_page`
|
|
384
|
-
|
|
385
|
-
The system activates:
|
|
386
|
-
|
|
387
|
-
- `stitch_design_review`
|
|
388
|
-
|
|
389
|
-
And generates:
|
|
390
|
-
|
|
391
|
-
- `artifacts/stitch/approval.json`
|
|
392
|
-
|
|
393
|
-
If that approval file is not approved, the change cannot claim completion and cannot be archived.
|
|
394
|
-
|
|
395
|
-
In page design review scenarios, this gate also requires:
|
|
396
|
-
|
|
397
|
-
- The same route may only have one canonical layout
|
|
398
|
-
- `light/dark` must be theme variants of one layout, not two different compositions
|
|
399
|
-
- Delivery must include screen mapping
|
|
400
|
-
- Old drafts and exploration drafts must be archived, not listed beside the canonical page
|
|
401
|
-
|
|
402
|
-
This shows that OSpec plugins do not act as simple reminders. They actually participate in workflow gates.
|
|
403
|
-
|
|
404
|
-
## Design Principles
|
|
405
|
-
|
|
406
|
-
### 1. Protocol-Shell-First
|
|
407
|
-
|
|
408
|
-
Build the protocol shell first, then discuss business specifics.
|
|
409
|
-
|
|
410
|
-
Benefits:
|
|
411
|
-
|
|
412
|
-
- Initialization stays lightweight
|
|
413
|
-
- Project type is less likely to be guessed wrong
|
|
414
|
-
- A repository that is still undefined is not forced into a rigid template
|
|
415
|
-
|
|
416
|
-
### 2. Explicit Over Implicit
|
|
417
|
-
|
|
418
|
-
OSpec rarely does things by guessing what you probably want.
|
|
419
|
-
|
|
420
|
-
For example:
|
|
421
|
-
|
|
422
|
-
- `init` does not automatically generate docs
|
|
423
|
-
- `docs generate` does not automatically create a change
|
|
424
|
-
- `new` does not automatically advance implementation
|
|
425
|
-
|
|
426
|
-
Each step tries to stay clear, controllable, and explainable.
|
|
427
|
-
|
|
428
|
-
### 3. Documentation Is Part of Execution
|
|
429
|
-
|
|
430
|
-
In OSpec:
|
|
431
|
-
|
|
432
|
-
- proposal is not an auxiliary report
|
|
433
|
-
- tasks are not a temporary memo
|
|
434
|
-
- verification is not a final add-on note
|
|
435
|
-
|
|
436
|
-
These documents are part of the workflow itself and directly affect whether later `verify` and `archive` can pass.
|
|
437
|
-
|
|
438
|
-
### 4. `state.json` Is the Source of Truth
|
|
439
|
-
|
|
440
|
-
The project explicitly requires:
|
|
441
|
-
|
|
442
|
-
- Use `state.json` as the basis of current execution state
|
|
443
|
-
- `verification.md` cannot replace `state.json`
|
|
444
|
-
|
|
445
|
-
This prevents workflow drift caused by inconsistent descriptions.
|
|
446
|
-
|
|
447
|
-
### 5. Gate First, Archive Second
|
|
448
|
-
|
|
449
|
-
Closure in OSpec is not "code is written, then commit". It is:
|
|
450
|
-
|
|
451
|
-
- Check whether the workflow is complete
|
|
452
|
-
- Only then allow archiving
|
|
453
|
-
- Enter the Git commit stage after archiving
|
|
454
|
-
|
|
455
|
-
That makes the delivery boundary much clearer.
|
|
456
|
-
|
|
457
|
-
### 6. Pluginized Instead of Hardcoded
|
|
458
|
-
|
|
459
|
-
Capabilities such as design review are not hardcoded into the main flow. They are injected through plugins.
|
|
460
|
-
|
|
461
|
-
That means the system can keep expanding with things like:
|
|
462
|
-
|
|
463
|
-
- design review
|
|
464
|
-
- security checks
|
|
465
|
-
- other approval capabilities
|
|
466
|
-
|
|
467
|
-
without making the main workflow increasingly bloated.
|
|
468
|
-
|
|
469
|
-
### 7. One Protocol Across Multiple AI Clients
|
|
470
|
-
|
|
471
|
-
The current project does not only manage internal workflow. It can also distribute the skill pack to:
|
|
472
|
-
|
|
473
|
-
- Codex
|
|
474
|
-
- Claude Code
|
|
475
|
-
|
|
476
|
-
That means teams can still share one collaboration protocol even when using different AI tools.
|
|
477
|
-
|
|
478
|
-
## About This Repository
|
|
479
|
-
|
|
480
|
-
This repository is first and foremost:
|
|
481
|
-
|
|
482
|
-
- The implementation and release repository of OSpec
|
|
483
|
-
|
|
484
|
-
It mainly contains:
|
|
485
|
-
|
|
486
|
-
- `dist/`: compiled CLI, commands, workflow, services, and adapters
|
|
487
|
-
- `assets/`: protocol docs, convention templates, global skills, and Git hooks
|
|
488
|
-
- `docs/`: external documentation and design specification documents
|
|
489
|
-
- `scripts/`: installation, release, and fork sync scripts
|
|
490
|
-
- `skill.yaml`, `SKILL.md`, `agents/`: skill packaging and distribution entry points
|
|
491
|
-
|
|
492
|
-
From the result of `ospec status .`, the current repository root is not fully initialized as a business project managed by OSpec. It still lacks:
|
|
493
|
-
|
|
494
|
-
- `.skillrc`
|
|
495
|
-
- `changes/active/`
|
|
496
|
-
- `changes/archived/`
|
|
497
|
-
|
|
498
|
-
That means this repository has two different identities:
|
|
499
|
-
|
|
500
|
-
- It is the source repository of the OSpec tool itself
|
|
501
|
-
- It is not an example business repository already running business requests through OSpec
|
|
502
|
-
|
|
503
|
-
So the more accurate interpretation is:
|
|
132
|
+
Archive notes:
|
|
133
|
+
|
|
134
|
+
- run your project-specific deploy, test, and QA flow first
|
|
135
|
+
- use `ospec verify` to confirm the active change is ready
|
|
136
|
+
- use `ospec finalize` to rebuild indexes and archive the accepted change
|
|
137
|
+
|
|
138
|
+
</details>
|
|
139
|
+
|
|
140
|
+
## How The OSpec Workflow Works
|
|
141
|
+
|
|
142
|
+
```text
|
|
143
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
144
|
+
│ 1. USER REQUEST │
|
|
145
|
+
│ "Use OSpec to create and advance a change for this task." │
|
|
146
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
147
|
+
│
|
|
148
|
+
▼
|
|
149
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
150
|
+
│ 2. INIT TO CHANGE-READY │
|
|
151
|
+
│ ospec init │
|
|
152
|
+
│ - .skillrc │
|
|
153
|
+
│ - .ospec/ │
|
|
154
|
+
│ - changes/active + changes/archived │
|
|
155
|
+
│ - root SKILL files and for-ai guidance │
|
|
156
|
+
│ - docs/project/* baseline knowledge docs │
|
|
157
|
+
│ - reuse docs or fall back to placeholders │
|
|
158
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
159
|
+
│
|
|
160
|
+
▼
|
|
161
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
162
|
+
│ 3. EXECUTION │
|
|
163
|
+
│ ospec new <change-name> │
|
|
164
|
+
│ ospec progress │
|
|
165
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
166
|
+
│
|
|
167
|
+
▼
|
|
168
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
169
|
+
│ 4. DEPLOY + VALIDATE │
|
|
170
|
+
│ project deploy / test / QA │
|
|
171
|
+
│ ospec verify │
|
|
172
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
173
|
+
│
|
|
174
|
+
▼
|
|
175
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
176
|
+
│ 5. ARCHIVE │
|
|
177
|
+
│ ospec finalize │
|
|
178
|
+
│ rebuild index + archive │
|
|
179
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
180
|
+
```
|
|
504
181
|
|
|
505
|
-
|
|
506
|
-
- The direct usage target of OSpec is downstream business projects or newly initialized directories
|
|
182
|
+
## Core Concepts
|
|
507
183
|
|
|
508
|
-
|
|
184
|
+
| Concept | What It Means |
|
|
185
|
+
|---------|---------------|
|
|
186
|
+
| **Protocol Shell** | The minimum collaboration skeleton: `.skillrc`, `.ospec/`, `changes/`, root `SKILL.md`, `SKILL.index.json`, and `for-ai/` guidance. |
|
|
187
|
+
| **Project Knowledge Layer** | Explicit project context such as `docs/project/*`, layered skill files, and index state that AI can read consistently. |
|
|
188
|
+
| **Active Change** | A dedicated execution container for one requirement, usually with `proposal.md`, `tasks.md`, `state.json`, `verification.md`, and `review.md`. |
|
|
509
189
|
|
|
510
|
-
|
|
190
|
+
## Features
|
|
511
191
|
|
|
512
|
-
- `ospec init`
|
|
513
|
-
-
|
|
514
|
-
-
|
|
515
|
-
-
|
|
192
|
+
- **Change-ready initialization**: `ospec init` creates the protocol shell and baseline project knowledge docs in one pass.
|
|
193
|
+
- **Guided initialization**: AI-assisted init can ask once for missing summary or tech stack; direct CLI init falls back to placeholder docs when context is missing.
|
|
194
|
+
- **Docs maintenance**: `ospec docs generate` refreshes or repairs project knowledge docs when you need it later.
|
|
195
|
+
- **Tracked requirement execution**: each change can keep proposal, tasks, state, verification, and review files aligned.
|
|
196
|
+
- **Queue helpers**: `queue` and `run` support explicit multi-change execution when one active change is not enough.
|
|
197
|
+
- **Plugin workflow gates**: built-in plugin commands support Stitch design review and Checkpoint automation.
|
|
198
|
+
- **Skill management**: install and inspect OSpec skills for Codex and Claude Code.
|
|
199
|
+
- **Standard closeout**: `finalize` verifies, rebuilds indexes, and archives the change before manual Git commit.
|
|
516
200
|
|
|
517
|
-
|
|
201
|
+
## Documentation
|
|
518
202
|
|
|
519
|
-
|
|
520
|
-
- explicit extension
|
|
521
|
-
- inspectable workflow
|
|
522
|
-
- plugins can block progression
|
|
523
|
-
- queue mode only starts when explicitly requested
|
|
203
|
+
### Core Docs
|
|
524
204
|
|
|
525
|
-
|
|
205
|
+
- [Docs Index](docs/README.md)
|
|
206
|
+
- [Prompt Guide](docs/prompt-guide.md)
|
|
207
|
+
- [Usage](docs/usage.md)
|
|
208
|
+
- [Project Overview](docs/project-overview.md)
|
|
209
|
+
- [Installation](docs/installation.md)
|
|
210
|
+
- [Skills Installation](docs/skills-installation.md)
|
|
211
|
+
- [GitLab Custom Fork Sync](docs/custom-fork-sync.md)
|
|
212
|
+
- [Upstream Brand Protection](docs/upstream-brand-protection.md)
|
|
526
213
|
|
|
527
|
-
|
|
214
|
+
### Chinese-Only Advanced Specs
|
|
528
215
|
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
ospec new landing-refresh demo
|
|
534
|
-
ospec changes status demo
|
|
535
|
-
ospec progress demo/changes/active/landing-refresh
|
|
536
|
-
```
|
|
216
|
+
- [Stitch Plugin Spec](docs/stitch-plugin-spec.zh-CN.md)
|
|
217
|
+
- [Stitch Plugin Roadmap](docs/stitch-plugin-roadmap.zh-CN.md)
|
|
218
|
+
- [Checkpoint Plugin Spec](docs/checkpoint-plugin-spec.zh-CN.md)
|
|
219
|
+
- [Current Vibe Coding Spec Flow](docs/current-vibe-coding-spec-flow.zh-CN.md)
|
|
537
220
|
|
|
538
|
-
|
|
221
|
+
## Repository Structure
|
|
539
222
|
|
|
540
|
-
```
|
|
541
|
-
|
|
542
|
-
|
|
223
|
+
```text
|
|
224
|
+
dist/ Compiled CLI runtime
|
|
225
|
+
assets/ Managed protocol assets, hooks, and skill payloads
|
|
226
|
+
docs/ Public documentation
|
|
227
|
+
scripts/ Release and installation helpers
|
|
228
|
+
.ospec/templates/hooks/ Hook templates shipped with the package
|
|
543
229
|
```
|
|
544
230
|
|
|
545
|
-
##
|
|
546
|
-
|
|
547
|
-
In one sentence, OSpec is not a tool for helping teams "generate code faster". It is a tool for helping teams "deliver more reliably with AI".
|
|
231
|
+
## License
|
|
548
232
|
|
|
549
|
-
|
|
233
|
+
This project is licensed under the [MIT License](LICENSE).
|