dev-flow-codex 0.5.1 → 0.5.3
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 +131 -138
- package/bin/dev-flow-codex.mjs +1 -1
- package/package.json +1 -1
- package/plugin/.codex-plugin/plugin.json +1 -1
- package/plugin/skills/dev-flow/SKILL.md +30 -17
- package/runtime/darwin-arm64/dev-flow +0 -0
package/README.md
CHANGED
|
@@ -1,196 +1,189 @@
|
|
|
1
1
|
# dev-flow-codex
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
`darwin-arm64` Core executable。它不保存 Task、process cursor、transition table 或 recovery
|
|
6
|
-
classification。
|
|
3
|
+
[中文](https://github.com/Innocent-children/dev-flow/blob/main/packages/codex/README.md) |
|
|
4
|
+
[English](https://github.com/Innocent-children/dev-flow/blob/main/docs/CODEX_en.md)
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
`dev-flow-codex` 把 Dev Flow 状态图接入 Codex CLI。package 包含 Codex Plugin、显式 Skill、
|
|
7
|
+
local STDIO MCP 配置和 macOS arm64 Core executable;Task、节点、流转和 Recovery 仍由 bundled
|
|
8
|
+
Go Core 独自管理。
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
graph runtime;历史 `0.3.0` 包、Tag、Release 与证据保持冻结。
|
|
10
|
+
## 支持范围
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
| 项目 | 当前支持 |
|
|
13
|
+
| --- | --- |
|
|
14
|
+
| Package | `dev-flow-codex@0.5.3` |
|
|
15
|
+
| Bundled Core | `0.5.1` |
|
|
16
|
+
| Platform | macOS arm64 |
|
|
17
|
+
| Node.js | `>=24` |
|
|
18
|
+
| Codex | `>=0.147.0` |
|
|
19
|
+
| Release | [codex-v0.5.3](https://github.com/Innocent-children/dev-flow/releases/tag/codex-v0.5.3) |
|
|
20
|
+
|
|
21
|
+
`0.5.3` 的 normal release 已通过 registry package 安装、package/Core identity、setup、Core
|
|
22
|
+
handshake、remove、uninstall 和 repository-unchanged 门禁。上表记录已经验证的精确公开版本;
|
|
23
|
+
下面的安装命令使用 npm `latest` dist-tag 获取当前最新稳定 package。
|
|
24
|
+
|
|
25
|
+
## 安装
|
|
14
26
|
|
|
15
27
|
```bash
|
|
16
|
-
npm install -g dev-flow-codex@
|
|
28
|
+
npm install -g dev-flow-codex@latest
|
|
17
29
|
dev-flow-codex setup
|
|
30
|
+
dev-flow-codex --version
|
|
18
31
|
```
|
|
19
32
|
|
|
20
|
-
|
|
21
|
-
|
|
33
|
+
npm 全局安装只负责把 package 和 `dev-flow-codex` launcher 放到 `PATH`。`setup` 是独立步骤:
|
|
34
|
+
它验证平台、package 内容、bundled Core 与 Codex 兼容版本,然后注册 Plugin、marketplace 与 MCP,
|
|
35
|
+
并在写入后回读 ownership。`--version` 同时输出实际 package 和 bundled Core 版本。
|
|
22
36
|
|
|
23
|
-
|
|
24
|
-
`>=0.147.0`。没有 Linux、Windows、Intel Mac、Rosetta 或 DeepSeek 产品支持声明。
|
|
37
|
+
## 命令参考
|
|
25
38
|
|
|
26
|
-
|
|
39
|
+
`dev-flow-codex` 的生产 CLI 只接受下表中的命令;未知参数会在执行任何注册操作前失败。
|
|
27
40
|
|
|
28
|
-
|
|
41
|
+
| 命令 | 说明 |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| `npm install -g dev-flow-codex@latest` | 安装 npm `latest` 指向的 package,并把 launcher 全局加入 `PATH`;不会自动注册 Codex Plugin。 |
|
|
44
|
+
| `dev-flow-codex setup` | 校验 package、Core 和 Codex 版本,注册 marketplace、Plugin 与 MCP,并回读最终状态。重复执行会验证现有 ownership,兼容 package 升级也通过该命令完成。 |
|
|
45
|
+
| `dev-flow-codex setup --json` | 与 `setup` 行为相同,但只输出机器可读 JSON:`operation`、`status`、`changed` 和 `receipt_path`。 |
|
|
46
|
+
| `dev-flow-codex --version` | 输出 `dev-flow-codex <package-version> (core <core-version>)`,用于确认实际安装身份。 |
|
|
47
|
+
| `dev-flow-codex remove` | 删除该 package 拥有的 Plugin、marketplace 注册和 receipt;保留 Task data、未知相邻文件和目标 Git 仓库。 |
|
|
48
|
+
| `dev-flow-codex remove --json` | 与 `remove` 行为相同,并输出机器可读 JSON;`next_step` 提示随后执行全局 npm 卸载。 |
|
|
49
|
+
| `npm uninstall -g dev-flow-codex` | 在 `remove` 完成后卸载全局 package。单独执行不会先清理 Codex 注册。 |
|
|
50
|
+
| `dev-flow-codex mcp` | **内部 Host 命令。** Plugin 的 MCP 配置调用它来设置数据目录和 admission instructions,再启动 packaged Core 的 `mcp --stdio`;正常用户不应手工运行。 |
|
|
29
51
|
|
|
30
|
-
|
|
31
|
-
.agents/plugins/marketplace.json
|
|
32
|
-
LICENSE
|
|
33
|
-
README.md
|
|
34
|
-
bin/dev-flow-codex.mjs
|
|
35
|
-
lib/lifecycle.mjs
|
|
36
|
-
lib/paths.mjs
|
|
37
|
-
package.json
|
|
38
|
-
plugin/.codex-plugin/plugin.json
|
|
39
|
-
plugin/.mcp.json
|
|
40
|
-
plugin/skills/dev-flow/SKILL.md
|
|
41
|
-
plugin/skills/dev-flow/agents/openai.yaml
|
|
42
|
-
plugin/skills/dev-flow/references/method-profiles.md
|
|
43
|
-
plugin/skills/dev-flow/references/node-payloads.md
|
|
44
|
-
runtime/darwin-arm64/dev-flow
|
|
45
|
-
```
|
|
52
|
+
当前 CLI 不提供 `help`、`update`、`uninstall` 或其他隐式子命令。更新到当前最新版本时执行:
|
|
46
53
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
54
|
+
```bash
|
|
55
|
+
npm install -g dev-flow-codex@latest
|
|
56
|
+
dev-flow-codex setup
|
|
57
|
+
```
|
|
50
58
|
|
|
51
|
-
|
|
59
|
+
完整的 Codex、DeepSeek、Core 和 MCP 命令目录见
|
|
60
|
+
[命令参考](../../docs/COMMANDS.md)。
|
|
52
61
|
|
|
53
|
-
|
|
62
|
+
## 开始一个 Task
|
|
54
63
|
|
|
55
|
-
|
|
56
|
-
ARTIFACT_ROOT="${TMPDIR:-/tmp}/dev-flow-local-artifacts"
|
|
57
|
-
mkdir -p "$ARTIFACT_ROOT"
|
|
58
|
-
SOURCE_COMMIT="$(git rev-parse HEAD)"
|
|
64
|
+
在当前 Git 仓库中,用唯一的精确 selector 描述工作:
|
|
59
65
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
--final \
|
|
63
|
-
--source-commit "$SOURCE_COMMIT" \
|
|
64
|
-
--report "$ARTIFACT_ROOT/artifact-evidence.json"
|
|
66
|
+
```text
|
|
67
|
+
$dev-flow-codex:dev-flow Fix idempotency in the order-creation endpoint and run targeted tests.
|
|
65
68
|
```
|
|
66
69
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
Builder 要求输出目录已经存在、没有 `.tgz`,source tree 干净且 HEAD 等于 `--source-commit`;
|
|
70
|
-
它验证 package/Core/plugin version identity、platform、detached runtime executable 和 closed pack
|
|
71
|
-
contents,并输出 SHA-256 evidence。制品与 evidence JSON 均保留在仓库外。
|
|
70
|
+
这不是 shell 命令。新 Task 从 `REQUIREMENTS` 开始,默认使用 `plain` profile;也可以在同一请求
|
|
71
|
+
中明确选择 `spec-kit` 或 `openspec`。Task 创建后 profile 保持不变。
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Core 会持续返回:
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
- 当前 node、purpose、entry/completion conditions;
|
|
76
|
+
- 当前 revision、action identity 和 repository binding;
|
|
77
|
+
- `allowed_effects`、`required_evidence` 和 verification budget;
|
|
78
|
+
- method profile 对应的 semantic steps;
|
|
79
|
+
- 全部合法 transitions、guard、destination 与 reason rule。
|
|
76
80
|
|
|
77
|
-
|
|
81
|
+
Codex 完成当前节点工作后,只提交 live Action 允许的 `transition_id` 和 closed payload。
|
|
78
82
|
|
|
79
|
-
|
|
80
|
-
$dev-flow-codex:dev-flow
|
|
81
|
-
```
|
|
83
|
+
## 显式调用边界
|
|
82
84
|
|
|
83
|
-
Skill
|
|
84
|
-
|
|
85
|
-
does not select this Skill;wrong plugin namespace、wrong Skill base name 或 missing selector 也不会
|
|
86
|
-
选择它。ordinary prompt 必须产生 zero Dev Flow calls。non-exact selectors must not complete a task-bearing operation;
|
|
87
|
-
This does not disable ordinary Codex repository tools. The package does not make or claim selector-bound MCP visibility or authorization。
|
|
88
|
-
|
|
89
|
-
被接纳的请求必须只涉及一个现有 Git repository,并先调用 `dev_flow_server_info({})`。当前
|
|
90
|
-
source-local current contract handshake 必须返回:
|
|
85
|
+
Skill metadata 设置 `policy.allow_implicit_invocation: false`,因此只有下面这个精确 selector 可以
|
|
86
|
+
进入 Dev Flow:
|
|
91
87
|
|
|
92
88
|
```text
|
|
93
|
-
|
|
94
|
-
definition_digest = exact current process content
|
|
95
|
-
method_profiles = plain, spec-kit, openspec
|
|
96
|
-
exact six-tool catalog
|
|
89
|
+
$dev-flow-codex:dev-flow
|
|
97
90
|
```
|
|
98
91
|
|
|
99
|
-
|
|
100
|
-
executable 读取,不要求与 Codex package version 相等。公开工具为:
|
|
92
|
+
相关名称与边界如下:
|
|
101
93
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
dev_flow_cancel_task
|
|
109
|
-
```
|
|
94
|
+
- Skill resource/base name 是 `dev-flow`;
|
|
95
|
+
- 安装后的 Skill full name 是 `dev-flow-codex:dev-flow`;
|
|
96
|
+
- `$dev-flow` 不是别名,不会选择该 Skill;
|
|
97
|
+
- plugin namespace 错误、Skill base name 错误或缺少 selector 都不会选择该 Skill;
|
|
98
|
+
- 普通提示词必须产生零次 Dev Flow 调用;
|
|
99
|
+
- 非精确 selector 不得完成任何携带 Task 的操作。
|
|
110
100
|
|
|
111
|
-
|
|
101
|
+
这项边界不限制 Codex 的普通仓库工具,也不声称 MCP 的可见性或授权与 selector 绑定;它只约束
|
|
102
|
+
当前 Skill 是否可以发起 Dev Flow 调用。
|
|
112
103
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
104
|
+
通过 admission 后,`dev_flow_server_info({})` 必须是第一次 Dev Flow 调用。安装内容、bundled
|
|
105
|
+
Core、Codex 兼容性和注册 ownership 已由 `dev-flow-codex setup` 验证;每次 Task 启动只静默确认
|
|
106
|
+
Core ready、`standard-development`、definition digest、method profiles 与六个工具的闭合集合,
|
|
107
|
+
成功后立即打开或恢复 Task。正常启动不向用户逐项展示版本、摘要、profile 或工具目录;只有失败
|
|
108
|
+
时才报告具体阻塞项和一个可执行的恢复步骤。工具和 method profile 的返回顺序不影响兼容性。
|
|
116
109
|
|
|
117
|
-
|
|
110
|
+
| MCP 工具 | 作用 |
|
|
111
|
+
| --- | --- |
|
|
112
|
+
| `dev_flow_server_info` | 读取 Core identity、能力、process、method profile 和工具目录;有效 admission 后必须首先调用。 |
|
|
113
|
+
| `dev_flow_open_task` | 为当前 canonical repository 创建新 Task,或恢复其现有 Task。 |
|
|
114
|
+
| `dev_flow_get_task` | 读取持久化 Task;可附带 operation probe 获取 Recovery assessment。 |
|
|
115
|
+
| `dev_flow_get_next_action` | 读取当前节点的权威 Action、验证预算、method steps 和全部合法 transition。 |
|
|
116
|
+
| `dev_flow_apply_action` | 使用当前 revision、Action identity、repository binding 和 closed payload 应用一次 Core 声明的 transition。 |
|
|
117
|
+
| `dev_flow_cancel_task` | 使用当前 revision 和明确 reason 取消一个非终态 Task。 |
|
|
118
118
|
|
|
119
|
-
|
|
120
|
-
plain
|
|
121
|
-
spec-kit
|
|
122
|
-
openspec
|
|
123
|
-
```
|
|
119
|
+
## 理解审查与 Recovery
|
|
124
120
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
只有等价工作实际完成时才提交 `plain_fallback` method evidence。command、checkbox、sync、archive
|
|
128
|
-
或 artifact 自身不会推进 Core。
|
|
121
|
+
`TEST` 通过后,Task 进入 `COMPREHENSION_REVIEW`。Codex 解释当前行为、设计与维护风险,开发者
|
|
122
|
+
给出明确 verdict。复杂实现进入 `REFACTOR`;仓库发生变化后必须重新回到 `TEST`。
|
|
129
123
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
124
|
+
每次 mutation 前,Adapter 保留 request/operation ID、source cursor、revision、action、
|
|
125
|
+
repository binding 和原始 payload。结果缺失、取消、截断、损坏或 transport failure 时,Adapter
|
|
126
|
+
先读取 Core,再遵循五分类 Recovery 和 advice;它不自行判断 retry safety 或 destination。
|
|
133
127
|
|
|
134
|
-
##
|
|
128
|
+
## 数据目录
|
|
135
129
|
|
|
136
|
-
|
|
137
|
-
cursor、revision、action、issuance binding 和原始 closed payload。结果缺失、取消、损坏、截断或
|
|
138
|
-
transport failure 时不得盲目重试,也不得重建缺失的 probe。
|
|
130
|
+
默认数据目录由 package lifecycle 管理,也可以设置:
|
|
139
131
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
node 或 destination。
|
|
132
|
+
```bash
|
|
133
|
+
export DEV_FLOW_DATA_DIR="/absolute/path/to/existing-directory"
|
|
134
|
+
```
|
|
144
135
|
|
|
145
|
-
|
|
136
|
+
显式目录必须已经存在、可用且可 canonicalize。setup、remove 和 npm uninstall 都保留 Task data
|
|
137
|
+
与未知相邻文件,也不会修改目标 Git 仓库。
|
|
146
138
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
139
|
+
当前 Core 只读取当前 SQLite Schema。检测到不兼容或 pre-graph data 时返回
|
|
140
|
+
`SCHEMA_UNSUPPORTED` 并保持零写入。请选择新的数据目录,或在 Core 外部手工归档、改名或删除
|
|
141
|
+
旧目录。
|
|
150
142
|
|
|
151
|
-
|
|
152
|
-
archive/rename/delete 旧目录,再启动 graph Core。错误信息不回显私有数据库路径。
|
|
143
|
+
## 移除
|
|
153
144
|
|
|
154
|
-
|
|
145
|
+
先删除 Codex 注册,再卸载全局 npm package:
|
|
155
146
|
|
|
156
|
-
|
|
157
|
-
|
|
147
|
+
```bash
|
|
148
|
+
dev-flow-codex remove
|
|
149
|
+
npm uninstall -g dev-flow-codex
|
|
150
|
+
```
|
|
158
151
|
|
|
159
|
-
|
|
160
|
-
Git。remove 应先证明 plugin/marketplace absence,再单独执行 package-manager uninstall。重新安装
|
|
161
|
-
兼容的 graph artifact 可以从同一 current SQLite format 数据目录恢复任务;没有任何 pre-graph data reader 或
|
|
162
|
-
conversion path。
|
|
152
|
+
需要机器可读结果时使用:
|
|
163
153
|
|
|
164
|
-
|
|
154
|
+
```bash
|
|
155
|
+
dev-flow-codex remove --json
|
|
156
|
+
```
|
|
165
157
|
|
|
166
|
-
|
|
167
|
-
`plugin/skills/dev-flow/references/node-payloads.md` 的对应标记模板。该 reference 覆盖
|
|
168
|
-
REQUIREMENTS、DESIGN、TASKS、IMPLEMENT、TEST、COMPREHENSION_REVIEW 的复杂度/通过分支、
|
|
169
|
-
REFACTOR、DELIVERY 和 BLOCKED resolution,并由真实 MCP validator、workflow decoder 和 payload
|
|
170
|
-
validator 提取验证。它只提供构造指引,不保存游标、复制 transition authority 或替代 Core。
|
|
158
|
+
重新安装兼容 package 并再次运行 `setup` 后,可以从保留的当前数据目录继续 Task。
|
|
171
159
|
|
|
172
|
-
|
|
173
|
-
role。无真实 process artifact 时使用空 `artifacts`,同时保留完整 branch wrapper、当前 baseline/
|
|
174
|
-
record/evidence identity 和精确 MethodEvidence。Core `INVALID_ARGUMENT` 会停止该 mutation,不会
|
|
175
|
-
触发候选 payload 试探或自动重试。
|
|
160
|
+
## Package 内容
|
|
176
161
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
162
|
+
生产 package 由 `package.json.files` 关闭,只包含 Plugin、Skill、MCP 配置、lifecycle library、
|
|
163
|
+
license 和一个 darwin-arm64 Core。它不包含 source tree、tests、fixtures、specs、`.git`、
|
|
164
|
+
`node_modules`、用户数据、构建日志或绝对路径,也没有 install/uninstall hook。
|
|
180
165
|
|
|
181
|
-
##
|
|
166
|
+
## 维护者入口
|
|
182
167
|
|
|
183
|
-
|
|
168
|
+
Package-local 验证:
|
|
184
169
|
|
|
185
170
|
```bash
|
|
186
171
|
pnpm --dir packages/codex test
|
|
187
172
|
```
|
|
188
173
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
174
|
+
Source-local 最终制品构建:
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
ARTIFACT_ROOT="${TMPDIR:-/tmp}/dev-flow-codex-artifacts"
|
|
178
|
+
mkdir -p "$ARTIFACT_ROOT"
|
|
179
|
+
SOURCE_COMMIT="$(git rev-parse HEAD)"
|
|
180
|
+
|
|
181
|
+
pnpm --dir packages/codex run build:local \
|
|
182
|
+
--output "$ARTIFACT_ROOT" \
|
|
183
|
+
--final \
|
|
184
|
+
--source-commit "$SOURCE_COMMIT" \
|
|
185
|
+
--report "$ARTIFACT_ROOT/artifact-evidence.json"
|
|
186
|
+
```
|
|
192
187
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
npm uninstall、data retention、相同 artifact reinstall 和同一 lifecycle Task terminal reopen。
|
|
196
|
-
两类 evidence 保持不同标签,且都不构成 registry package 或公开发布证明。
|
|
188
|
+
构建输出必须位于仓库外。公开发布使用根目录的 standalone release command,见
|
|
189
|
+
[`release/codex/README.md`](../../release/codex/README.md)。
|
package/bin/dev-flow-codex.mjs
CHANGED
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "../lib/paths.mjs";
|
|
17
17
|
|
|
18
18
|
const FORWARDED_SIGNALS = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
19
|
-
const NPM_UNINSTALL_HANDOFF = "Run npm uninstall dev-flow-codex separately after deregistration.";
|
|
19
|
+
const NPM_UNINSTALL_HANDOFF = "Run npm uninstall -g dev-flow-codex separately after deregistration.";
|
|
20
20
|
const CODEX_MCP_INSTRUCTIONS_ENVIRONMENT = "DEV_FLOW_CODEX_MCP_INSTRUCTIONS";
|
|
21
21
|
const CODEX_MCP_INSTRUCTIONS = [
|
|
22
22
|
"Dev Flow for Codex is explicit-only.",
|
package/package.json
CHANGED
|
@@ -7,8 +7,8 @@ description: "Explicit-only Dev Flow entry point for Codex. Use only when the cu
|
|
|
7
7
|
|
|
8
8
|
This Skill is the current Core contract Codex adapter for the shared Dev Flow Core. Core owns task state,
|
|
9
9
|
current node, legal transitions, destinations, recovery, blockers, and terminal outcomes. The Skill
|
|
10
|
-
admits one explicit request,
|
|
11
|
-
closed result without keeping adapter state.
|
|
10
|
+
admits one explicit request, silently validates normal startup results, renders method work, and
|
|
11
|
+
forwards one closed result without keeping adapter state.
|
|
12
12
|
|
|
13
13
|
## Admission gate
|
|
14
14
|
|
|
@@ -38,19 +38,23 @@ If admission fails, explain the missing precondition and stop before Skill-owned
|
|
|
38
38
|
not complete a task-bearing call or create adapter state. Host-exposed read-only or Core-rejected
|
|
39
39
|
calls are not activation and must be reported honestly.
|
|
40
40
|
|
|
41
|
+
Successful admission is internal startup work. Do not narrate the selector, Git-root, repository,
|
|
42
|
+
profile-default, or authorization checklist; continue directly to the compatibility handshake.
|
|
43
|
+
|
|
41
44
|
## Compatibility handshake
|
|
42
45
|
|
|
43
46
|
Only after admission passes, call `dev_flow_server_info({})`; it must be the first Dev Flow tool
|
|
44
47
|
call. Require one complete structured result proving:
|
|
45
48
|
|
|
46
|
-
- product is exactly `dev-flow`, and Core version
|
|
49
|
+
- product is exactly `dev-flow`, and Core version is present and canonical. Core and the Codex
|
|
50
|
+
package are independently versioned products, so their versions are not required to be equal;
|
|
47
51
|
- transport is exactly `stdio`, health is exactly `ready`, and the supported host set contains
|
|
48
52
|
`codex`;
|
|
49
53
|
- `supported_processes` contains exactly one closed `standard-development` entry:
|
|
50
|
-
`process_id` is `standard-development
|
|
51
|
-
|
|
52
|
-
- `method_profiles`
|
|
53
|
-
- the tool catalog contains exactly these six raw names,
|
|
54
|
+
`process_id` is `standard-development`, `definition_digest` is present and canonical, and
|
|
55
|
+
`new_task_supported` is exactly `true`;
|
|
56
|
+
- `method_profiles` contains exactly `plain`, `spec-kit`, and `openspec`, regardless of order;
|
|
57
|
+
- the tool catalog contains exactly these six raw names, regardless of order:
|
|
54
58
|
|
|
55
59
|
1. `dev_flow_server_info`
|
|
56
60
|
2. `dev_flow_open_task`
|
|
@@ -59,10 +63,17 @@ call. Require one complete structured result proving:
|
|
|
59
63
|
5. `dev_flow_apply_action`
|
|
60
64
|
6. `dev_flow_cancel_task`
|
|
61
65
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
+
Package resources, the bundled Core executable and version, Codex compatibility, and registration
|
|
67
|
+
ownership are setup-time checks owned by `dev-flow-codex setup`; do not repeat them by inspecting the
|
|
68
|
+
installed package or executable during each Skill invocation.
|
|
69
|
+
|
|
70
|
+
An unsupported process, absent process digest, false new-task support, incomplete method-profile set,
|
|
71
|
+
missing or additional tool, or incomplete, truncated, malformed, or incompatible result fails the
|
|
72
|
+
handshake. On success, do not display or explain the handshake checklist, versions, process digest,
|
|
73
|
+
profiles, or tool catalog; continue immediately to task discovery. On failure, report only the
|
|
74
|
+
specific blocking condition and one actionable next step. For installation or compatibility failures,
|
|
75
|
+
direct the user to rerun `dev-flow-codex setup`. Stop without task discovery or undocumented probing.
|
|
76
|
+
Do not inspect local source or an installed binary, and do not start a second MCP server to bypass a
|
|
66
77
|
failed handshake.
|
|
67
78
|
|
|
68
79
|
## Task discovery
|
|
@@ -110,7 +121,9 @@ Use this exact `new_task` JSON shape, changing only values derived from the admi
|
|
|
110
121
|
|
|
111
122
|
Ask before opening only when a material request, initial-bound, verification, or profile choice
|
|
112
123
|
cannot be derived without changing user intent. Let Core decide whether a compatible intent creates
|
|
113
|
-
or resumes a task. Report an ownership or contract conflict unchanged in meaning and stop.
|
|
124
|
+
or resumes a task. Report an ownership or contract conflict unchanged in meaning and stop. After a
|
|
125
|
+
successful open, give at most one concise status containing the Task identity, revision, and current
|
|
126
|
+
node, then begin the node's substantive repository work without reciting startup checks.
|
|
114
127
|
|
|
115
128
|
## Governed action loop
|
|
116
129
|
|
|
@@ -129,11 +142,11 @@ For an active task, perform each iteration in this order:
|
|
|
129
142
|
allowed effects, required evidence, method profile, method steps, available transitions, payload
|
|
130
143
|
schema/contract, guidance, repository-binding digest, and issued time as one inseparable Core
|
|
131
144
|
result. Stop if any field is absent, malformed, or truncated.
|
|
132
|
-
3.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
145
|
+
3. Validate the complete Action internally. During normal work, give only a concise current-node
|
|
146
|
+
status and proceed; do not dump entry conditions, completion conditions, allowed effects, required
|
|
147
|
+
evidence, method steps, payload details, or all `available_transitions`. Surface a contract field
|
|
148
|
+
only when it requires a user decision, limits requested authority, or explains a blocker. Keep the
|
|
149
|
+
complete Action bound for transition selection and forwarding even when it is not displayed.
|
|
137
150
|
4. Stop when the complete result reports a blocker or terminal outcome.
|
|
138
151
|
5. Render and perform each current method operation under the allowed effects, repository
|
|
139
152
|
instructions, verification budget, and current user authority.
|
|
Binary file
|