@dawipong/opcflow 0.1.0 → 0.1.1
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.en.md +15 -8
- package/README.md +14 -7
- package/package.json +5 -2
package/README.en.md
CHANGED
|
@@ -13,6 +13,8 @@ One template turns Claude Code / Codex / OpenCode / Cursor into a contract-gover
|
|
|
13
13
|
|
|
14
14
|
[简体中文](README.md) · **English**
|
|
15
15
|
|
|
16
|
+
<img src="screen-en.png" alt="opcflow visual workbench — artifact tree + review-queue diff + live rendering" width="840" />
|
|
17
|
+
|
|
16
18
|
</div>
|
|
17
19
|
|
|
18
20
|
---
|
|
@@ -61,12 +63,17 @@ from contract to code to acceptance.**
|
|
|
61
63
|
|
|
62
64
|
## Installation
|
|
63
65
|
|
|
64
|
-
opcflow is an npm package — it **does not drop source into your project**.
|
|
65
|
-
|
|
66
|
+
opcflow is an npm package — it **does not drop source into your project**. Install it once globally to
|
|
67
|
+
get the `opcflow` command:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
pnpm i -g @dawipong/opcflow # or npm i -g @dawipong/opcflow
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Bootstrap from your project root (no args → interactive: pick platforms / endpoints / model; or pass flags):
|
|
66
74
|
|
|
67
75
|
```bash
|
|
68
|
-
|
|
69
|
-
npx -y @dawipong/opcflow init --platforms=claude,cursor --endpoints=service,web
|
|
76
|
+
opcflow init --platforms=claude,cursor --endpoints=service,web
|
|
70
77
|
# backend-only: --endpoints=service (auto-prunes designer, qa kept)
|
|
71
78
|
# set models: --model='{"codex":"gpt-5.1-codex"}' or --model=<single string> (defaults per platform)
|
|
72
79
|
```
|
|
@@ -85,13 +92,13 @@ Requires Node ≥ 22.
|
|
|
85
92
|
1. **Fill in code-dir conventions** — edit `codeRoots` in `workbench.config.json` (each endpoint's code dir, `{module}` placeholder).
|
|
86
93
|
2. **Start the opcflow** (visual approval panel, connects to the project's `.workbench`):
|
|
87
94
|
```bash
|
|
88
|
-
|
|
95
|
+
opcflow serve # → http://127.0.0.1:5620 (--project sets the root, defaults to cwd)
|
|
89
96
|
```
|
|
90
97
|
3. **Give the AI your first requirement** (one sentence). It runs the five-role pipeline, producing contracts layer by layer and submitting them for review.
|
|
91
98
|
4. **Nod in the review queue** — view diffs in the opcflow; approve / reject; thumbs-up prototypes.
|
|
92
99
|
5. **Once all contracts are approved, dispatch:**
|
|
93
100
|
```bash
|
|
94
|
-
|
|
101
|
+
opcflow plan --module=<module> # dispatch architect/designer/developer/qa tasks
|
|
95
102
|
```
|
|
96
103
|
|
|
97
104
|
Every later change is tracked: edit an approved contract → auto-invalidate → downstream stale → a
|
|
@@ -136,7 +143,7 @@ never silently deviate.
|
|
|
136
143
|
|
|
137
144
|
## CLI Commands & Parameters
|
|
138
145
|
|
|
139
|
-
Every command: `npx -y @dawipong/opcflow <command
|
|
146
|
+
Every command: `opcflow <command> [args]` (after global install; or `npx -y @dawipong/opcflow <command>` without installing). Global `--project=<path>` sets the project
|
|
140
147
|
root (otherwise it searches upward for `workbench.config.json`). File-path arguments are separated with
|
|
141
148
|
`--` (e.g. `submit --actor=x -- <path>`).
|
|
142
149
|
|
|
@@ -227,7 +234,7 @@ root (otherwise it searches upward for `workbench.config.json`). File-path argum
|
|
|
227
234
|
|
|
228
235
|
## Visual opcflow
|
|
229
236
|
|
|
230
|
-
`
|
|
237
|
+
`opcflow serve` serves at `http://127.0.0.1:5620`: the artifact tree (colors update live), markdown /
|
|
231
238
|
mermaid / HTML-prototype iframe / code rendering, the **review-queue diff** (approved version vs.
|
|
232
239
|
current), an event timeline, and live SSE refresh. Approve, reject, and thumbs-up/down prototypes right
|
|
233
240
|
here.
|
package/README.md
CHANGED
|
@@ -13,6 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
**简体中文** · [English](README.en.md)
|
|
15
15
|
|
|
16
|
+
<img src="screen.png" alt="opcflow 可视化工作台 —— artifact 树 + 待审队列 diff + 实时渲染" width="840" />
|
|
17
|
+
|
|
16
18
|
</div>
|
|
17
19
|
|
|
18
20
|
---
|
|
@@ -56,11 +58,16 @@ opcflow 接管 **spec 之后的执行与验证**,两者是不同层次、可互
|
|
|
56
58
|
|
|
57
59
|
## 安装
|
|
58
60
|
|
|
59
|
-
opcflow 是一个 npm 包 ——
|
|
61
|
+
opcflow 是一个 npm 包 —— **不往你的项目里塞源码**。全局装一次,拿到 `opcflow` 命令:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
pnpm i -g @dawipong/opcflow # 或 npm i -g @dawipong/opcflow
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
在你的项目根一键引导(不带参数进交互:选平台 / 端 / 模型;也可用参数直接指定):
|
|
60
68
|
|
|
61
69
|
```bash
|
|
62
|
-
|
|
63
|
-
npx -y @dawipong/opcflow init --platforms=claude,cursor --endpoints=service,web
|
|
70
|
+
opcflow init --platforms=claude,cursor --endpoints=service,web
|
|
64
71
|
# 纯后端: --endpoints=service (自动裁掉 designer,qa 保留)
|
|
65
72
|
# 指定模型: --model='{"codex":"gpt-5.1-codex"}' 或 --model=<单个串>(缺省用各平台默认)
|
|
66
73
|
```
|
|
@@ -78,13 +85,13 @@ npx -y @dawipong/opcflow init --platforms=claude,cursor --endpoints=service,web
|
|
|
78
85
|
1. **填代码目录约定** —— 编辑 `workbench.config.json` 的 `codeRoots`(每个端的代码目录,`{module}` 占位)。
|
|
79
86
|
2. **起工作台**(可视化审批面板,连接项目的 `.workbench`):
|
|
80
87
|
```bash
|
|
81
|
-
|
|
88
|
+
opcflow serve # → http://127.0.0.1:5620(--project 指定项目根,缺省 cwd)
|
|
82
89
|
```
|
|
83
90
|
3. **对 AI 提第一个需求**(一句话)。它走五角色流水线逐层产出契约并送审。
|
|
84
91
|
4. **在待审队列点头** —— 工作台看 diff,approve / 打回 / 给原型 👍。
|
|
85
92
|
5. **契约全 approved 后派发**:
|
|
86
93
|
```bash
|
|
87
|
-
|
|
94
|
+
opcflow plan --module=<模块> # 一键派发 architect/designer/developer/qa 任务
|
|
88
95
|
```
|
|
89
96
|
|
|
90
97
|
之后的每次改动都被追踪:改了已批契约 → 自动失效 → 下游 stale → 待审队列出现复审任务。
|
|
@@ -124,7 +131,7 @@ flowchart LR
|
|
|
124
131
|
|
|
125
132
|
## CLI 命令参数
|
|
126
133
|
|
|
127
|
-
所有命令:`npx -y @dawipong/opcflow
|
|
134
|
+
所有命令:`opcflow <命令> [参数]`(全局装后即用;或 `npx -y @dawipong/opcflow <命令>` 免装)。全局 `--project=<路径>` 指定项目根(缺省向上找
|
|
128
135
|
`workbench.config.json`)。文件路径参数用 `--` 分隔(如 `submit --actor=x -- <路径>`)。
|
|
129
136
|
|
|
130
137
|
**任务**
|
|
@@ -214,7 +221,7 @@ flowchart LR
|
|
|
214
221
|
|
|
215
222
|
## 可视化工作台
|
|
216
223
|
|
|
217
|
-
`
|
|
224
|
+
`opcflow serve` 起在 `http://127.0.0.1:5620`:artifact 树(状态实时变色)、markdown / mermaid / HTML 原型
|
|
218
225
|
iframe / 代码渲染、**待审队列 diff**(approved 版本 vs 当前)、事件时间线、SSE 实时刷新。审批、打回、
|
|
219
226
|
给原型 👍👎 都在这里点。
|
|
220
227
|
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dawipong/opcflow",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Spec-anchored, drift-enforced execution layer for AI coding agents — artifact DAG, trust gates, multi-role pipeline; generates agents/MCP/hooks for Claude Code, Codex, OpenCode & Cursor.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Dawi",
|
|
7
7
|
"homepage": "https://github.com/nvrenshiren/opcflow#readme",
|
|
8
8
|
"repository": {
|
|
9
9
|
"type": "git",
|
|
10
|
-
"url": "https://github.com/nvrenshiren/opcflow.git"
|
|
10
|
+
"url": "git+https://github.com/nvrenshiren/opcflow.git"
|
|
11
11
|
},
|
|
12
12
|
"bugs": "https://github.com/nvrenshiren/opcflow/issues",
|
|
13
13
|
"keywords": [
|
|
@@ -62,6 +62,8 @@
|
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@ant-design/icons": "^6",
|
|
64
64
|
"@monaco-editor/react": "^4.7.0",
|
|
65
|
+
"@semantic-release/changelog": "^6.0.3",
|
|
66
|
+
"@semantic-release/git": "^10.0.1",
|
|
65
67
|
"@types/better-sqlite3": "^7",
|
|
66
68
|
"@types/node": "^22",
|
|
67
69
|
"@types/react": "^18",
|
|
@@ -74,6 +76,7 @@
|
|
|
74
76
|
"react-dom": "^18.3.1",
|
|
75
77
|
"react-markdown": "^10",
|
|
76
78
|
"remark-gfm": "^4",
|
|
79
|
+
"semantic-release": "^25.0.5",
|
|
77
80
|
"tsx": "^4",
|
|
78
81
|
"typescript": "^5.5.0",
|
|
79
82
|
"vite": "^7"
|