super-engineer-workflow 0.1.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.
Files changed (53) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/CONTRIBUTING.md +34 -0
  3. package/LICENSE +21 -0
  4. package/README.md +300 -0
  5. package/SECURITY.md +21 -0
  6. package/bin/super-engineer.js +19 -0
  7. package/docs/se/345/221/275/344/273/244/345/215/217/350/256/256.md +335 -0
  8. package/docs//344/270/255/346/226/207/344/275/277/347/224/250/346/211/213/345/206/214.md +707 -0
  9. package/docs//345/205/254/345/274/200/345/217/221/345/270/203/346/243/200/346/237/245/346/270/205/345/215/225.md +43 -0
  10. package/docs//345/277/253/351/200/237/345/210/235/345/247/213/345/214/226/345/267/245/344/275/234/345/214/272.md +419 -0
  11. package/docs//351/241/271/347/233/256/346/236/266/346/236/204/344/270/216/350/256/276/350/256/241/350/257/264/346/230/216.md +657 -0
  12. package/package.json +55 -0
  13. package/scripts/se-cli.py +301 -0
  14. package/scripts/se-setup.py +331 -0
  15. package/scripts/se-smoke-test.py +86 -0
  16. package/super-engineer-workflow/SKILL.md +439 -0
  17. package/super-engineer-workflow/adapters/go.yml +8 -0
  18. package/super-engineer-workflow/adapters/java-gradle.yml +8 -0
  19. package/super-engineer-workflow/adapters/java-maven.yml +8 -0
  20. package/super-engineer-workflow/adapters/node-react.yml +8 -0
  21. package/super-engineer-workflow/adapters/node-vue.yml +8 -0
  22. package/super-engineer-workflow/adapters/python.yml +8 -0
  23. package/super-engineer-workflow/agents/openai.yaml +4 -0
  24. package/super-engineer-workflow/assets/config-schema.json +100 -0
  25. package/super-engineer-workflow/assets/config.example.yml +12 -0
  26. package/super-engineer-workflow/assets/plan-schema.json +362 -0
  27. package/super-engineer-workflow/assets/status-schema.json +83 -0
  28. package/super-engineer-workflow/assets/workspace.example.yml +25 -0
  29. package/super-engineer-workflow/config.example.yml +12 -0
  30. package/super-engineer-workflow/references/contracts.md +39 -0
  31. package/super-engineer-workflow/references/execution-modes.md +38 -0
  32. package/super-engineer-workflow/references/java.md +21 -0
  33. package/super-engineer-workflow/references/planning.md +45 -0
  34. package/super-engineer-workflow/references/platform-openclaw.md +10 -0
  35. package/super-engineer-workflow/references/project-docs.md +7 -0
  36. package/super-engineer-workflow/references/review-checklist.md +26 -0
  37. package/super-engineer-workflow/references/se-commands.md +582 -0
  38. package/super-engineer-workflow/references/verify-checklist.md +45 -0
  39. package/super-engineer-workflow/references/workflow.md +208 -0
  40. package/super-engineer-workflow/scripts/archive-openspec.py +110 -0
  41. package/super-engineer-workflow/scripts/bootstrap-openspec.py +42 -0
  42. package/super-engineer-workflow/scripts/common.py +3285 -0
  43. package/super-engineer-workflow/scripts/generate-discovery.py +185 -0
  44. package/super-engineer-workflow/scripts/generate-review-report.py +296 -0
  45. package/super-engineer-workflow/scripts/generate-self-check.py +185 -0
  46. package/super-engineer-workflow/scripts/generate-smart-plan.py +429 -0
  47. package/super-engineer-workflow/scripts/init-workspace.py +68 -0
  48. package/super-engineer-workflow/scripts/prepare-archive-openspec.py +186 -0
  49. package/super-engineer-workflow/scripts/propose-openspec.py +170 -0
  50. package/super-engineer-workflow/scripts/run-verify-and-report.py +399 -0
  51. package/super-engineer-workflow/scripts/run-workflow.py +506 -0
  52. package/super-engineer-workflow/scripts/update-status.py +43 -0
  53. package/super-engineer-workflow/scripts/writeback-openspec.py +311 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,9 @@
1
+ # Changelog
2
+
3
+ ## 0.1.0
4
+
5
+ - 增加 `se` / `super-engineer` npm CLI 入口。
6
+ - 增加交互式初始化向导。
7
+ - 增加 `se doctor`、`se install`、`se sync`、`se version`。
8
+ - 增加 npm 打包白名单和临时产物排除规则。
9
+ - 增加 OpenSpec + todo 桥接工作流文档。
@@ -0,0 +1,34 @@
1
+ # Contributing
2
+
3
+ ## 开发环境
4
+
5
+ 需要:
6
+
7
+ - Node.js 18+
8
+ - npm 9+
9
+ - Python 3.10+
10
+
11
+ ## 本地检查
12
+
13
+ ```bash
14
+ npm run check
15
+ npm run smoke
16
+ npm run pack:check
17
+ node bin/super-engineer.js --help
18
+ node bin/super-engineer.js doctor --workspace .
19
+ ```
20
+
21
+ ## 修改原则
22
+
23
+ - `super-engineer-workflow/SKILL.md` 是 skill 主入口,修改命令语义时必须同步更新。
24
+ - `super-engineer-workflow/references/se-commands.md` 是 `/se:*` 协议说明,修改命令流程时必须同步更新。
25
+ - `scripts/` 下脚本是受控执行入口,不要让 AI 通过手写状态文件绕过流程。
26
+ - 发布前必须检查 npm 包内容,确认没有本地工作区产物、缓存文件、密钥或个人路径。
27
+
28
+ ## 发布流程
29
+
30
+ 1. 更新 `package.json.version`。
31
+ 2. 更新 `CHANGELOG.md`。
32
+ 3. 执行 `npm run check`。
33
+ 4. 执行 `npm run pack:check`。
34
+ 5. 执行 `npm publish --access public`。
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Gary-Coding
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,300 @@
1
+ # super-engineer
2
+
3
+ `super-engineer` 是一个面向存量系统交付场景的 AI 工程工作流项目。
4
+
5
+ 它的目标不是让 AI 零散地写代码,而是让 AI 围绕一次真实需求,按稳定阶段推进:
6
+
7
+ - 需求理解
8
+ - 计划生成
9
+ - 代码实现
10
+ - 实现自查
11
+ - 代码审查
12
+ - 自动化验证
13
+ - OpenSpec 回写与归档
14
+
15
+ ## 适用场景
16
+
17
+ - 中大型存量系统
18
+ - 多服务或多仓库工程
19
+ - 需要计划、审查、验证门禁
20
+ - 希望沉淀可回看、可追踪、可归档的交付过程
21
+ - 希望把 OpenSpec 和代码交付流程接起来
22
+
23
+ ## 当前能力
24
+
25
+ 当前版本已经支持:
26
+
27
+ - `discover -> plan -> implement -> self-check -> review -> verify` 执行流
28
+ - `manual` 与 `auto` 两种执行模式
29
+ - `todo` 与 `openspec` 两种输入模式
30
+ - OpenSpec `tasks.md -> todo_file` 桥接
31
+ - `/se:propose <change-name>` 优先使用 OpenSpec CLI 创建指定 change、读取 status 和 artifact instructions
32
+ - OpenSpec 模式使用 `.super-engineer/se-state.json` 状态机约束阶段跳转
33
+ - `/se:*` 命令可由统一路由入口解析,脚本负责校验阶段与允许命令
34
+ - OpenSpec 执行摘要回写
35
+ - OpenSpec task -> todo -> evidence 映射回写
36
+ - 归档前检查与安全归档
37
+ - 会话级 JSON / Markdown 产物归档
38
+ - 基于 `adapters/*.yml` 的主流语言项目识别与验证命令推断:Java、Node.js / Vue / React、Go、Python,并保留 Rust、.NET、PHP、Ruby、Make / CMake 兜底识别
39
+ - `workspace.yml.verify_commands` 覆盖默认验证命令
40
+ - PushPlus / Feishu 通知
41
+
42
+ ## 工作流分层
43
+
44
+ 推荐把整个流程理解成三个阶段:
45
+
46
+ 1. 规格阶段
47
+ - OpenSpec change 产出 `proposal.md`、`design.md`、`tasks.md`
48
+ 2. 交付阶段
49
+ - `todo.md` 或 桥接 todo 进入实现工作流
50
+ 3. 归档阶段
51
+ - 回写执行摘要,检查归档条件,满足条件后归档
52
+
53
+ 在 `openspec` 模式下,桥接 todo 是规格到交付之间的桥接产物。
54
+ 桥接 todo 的实际文件路径由 `workspace.yml` 中的 `todo_file` 决定,推荐继续使用 `todo.md`。
55
+ 它应该先被审核,再进入自动实现阶段。
56
+
57
+ OpenSpec 模式下,脚本会维护 `.super-engineer/se-state.json`。
58
+ `/se:propose` 后只允许 `/se:bridge`,`/se:bridge` 后才允许审核后 `/se:apply`,非法跨阶段命令会被脚本拒绝。
59
+
60
+ 标准工作流产物由脚本写入,AI 不应手工伪造 `.super-engineer` 状态文件、`verify.json`、`notification.json` 或 output 下的标准报告。飞书通知只以 `notification.json` 中由 `run-workflow.py verify` 生成的记录为准。
61
+
62
+ ## `se` 专属命令
63
+
64
+ 这个项目建议用户通过一组发给 AI 的专属命令来使用工作流,而不是直接接触底层脚本。
65
+
66
+ 推荐命令:
67
+
68
+ - `/se:init`
69
+ - `/se:propose <change-name>`
70
+ - `/se:bridge`
71
+ - `/se:plan`
72
+ - `/se:apply`
73
+ - `/se:review`
74
+ - `/se:verify`
75
+ - `/se:archive-check`
76
+ - `/se:archive`
77
+ - `/se:status`
78
+
79
+ 这些命令的定位是:
80
+
81
+ - 它们是发给 AI 的工作流指令
82
+ - 不是给用户自己执行的 shell 命令
83
+ - AI 收到命令后,再根据当前 `workspace.yml` 和工作流状态决定内部执行什么
84
+
85
+ 完整协议见:
86
+
87
+ - [docs/se命令协议.md](/Users/muke/Documents/personal/codex/super-engineer/docs/se命令协议.md)
88
+
89
+ ## 用户如何开始
90
+
91
+ 先准备工作空间,再把命令发给 AI。
92
+
93
+ 如果通过 npm 使用,推荐入口是:
94
+
95
+ ```bash
96
+ npx super-engineer-workflow init
97
+ ```
98
+
99
+ 也可以全局安装后使用:
100
+
101
+ ```bash
102
+ npm install -g super-engineer-workflow
103
+ se init
104
+ ```
105
+
106
+ 常用 CLI 命令:
107
+
108
+ ```bash
109
+ se init # 交互式安装 skill 并初始化工作区
110
+ se doctor # 检查本机环境和 workspace.yml
111
+ se install # 安装 skill 到 Codex / Claude
112
+ se sync # 强制同步最新 skill 到 Codex / Claude
113
+ se migrate # 补齐旧工作区缺失配置
114
+ se version # 查看版本
115
+ ```
116
+
117
+ 本地源码开发时,也可以直接使用引导脚本。默认是一步一步的交互式向导:
118
+
119
+ ```bash
120
+ python3 scripts/se-setup.py
121
+ ```
122
+
123
+ 脚本会依次完成环境检查、安装目标选择、工作区选择、代码目录配置、需求目录配置、工作流模式选择、OpenSpec 初始化确认,并在执行前展示摘要。最终会创建 `workspace.yml`、`openspec/`、`superengineer/<demand_name>/需求.md`,并可选安装 skill 到 Codex / Claude 本机目录。
124
+
125
+ 如果需要非交互初始化:
126
+
127
+ ```bash
128
+ python3 scripts/se-setup.py \
129
+ --yes \
130
+ --install both \
131
+ --workspace /path/to/ai-workspace \
132
+ --code-path ../code \
133
+ --demand-name 1-your-demand \
134
+ --source openspec \
135
+ --mode auto
136
+ ```
137
+
138
+ npm 包入口由 `package.json` 的 `bin` 字段提供,`super-engineer` 和 `se` 都会转发到同一个 CLI。
139
+
140
+ 一个真实需求示例:
141
+
142
+ > 经销商用户列表接口增加手机号精确筛选,要求兼容旧查询行为,并补齐 controller / service 层测试。
143
+
144
+ `todo` 模式常见起点:
145
+
146
+ ```text
147
+ /se:apply
148
+ 使用当前工作空间。
149
+ 需求是:经销商用户列表接口增加手机号精确筛选,要求兼容旧查询行为,并补齐 controller / service 层测试。
150
+ 当前模式是 todo + auto。
151
+ 如果 workspace 未初始化,先初始化;如果没有硬阻塞,直接推进到实现、自查、审查和验证。
152
+ ```
153
+
154
+ `openspec` 模式常见起点:
155
+
156
+ ```text
157
+ /se:propose add-phone-filter
158
+ 请根据当前 workspace 的 demand_file 生成或完善 OpenSpec change。
159
+ ```
160
+
161
+ 然后:
162
+
163
+ ```text
164
+ /se:bridge
165
+ 针对当前 OpenSpec change 生成交付阶段的桥接 todo,并总结待审核项。
166
+ ```
167
+
168
+ 人工确认后:
169
+
170
+ ```text
171
+ /se:apply
172
+ 使用当前工作空间,当前模式是 openspec + auto。
173
+ 我已审核当前桥接 todo,可以进入交付阶段。
174
+ 如果没有硬阻塞,自动推进到 verify;verify 通过后继续检查归档条件。
175
+ 如果结果为 safe_merge,下一步再执行 /se:archive。
176
+ ```
177
+
178
+ ## 工作空间配置
179
+
180
+ 每个业务工作空间都需要有 `workspace.yml`。
181
+
182
+ 最小 `todo` 模式示例:
183
+
184
+ ```yaml
185
+ version: 1
186
+ mode: manual
187
+ workflow_source: todo
188
+ todo_file: todo.md
189
+ reference_files: []
190
+ code_path: ../../../code
191
+ output_dir: output
192
+ ```
193
+
194
+ 如果自动识别出的验证命令不适合当前项目,可以在 `workspace.yml` 中覆盖:
195
+
196
+ ```yaml
197
+ verify_commands:
198
+ default: pnpm test && pnpm build
199
+ frontend-app: pnpm test && pnpm build
200
+ user-service: go test ./...
201
+ ```
202
+
203
+ 最小 `openspec` 模式示例:
204
+
205
+ ```yaml
206
+ version: 1
207
+ mode: manual
208
+ workflow_source: openspec
209
+ vars:
210
+ demand_name: add-phone-filter
211
+ demand_file: superengineer/${demand_name}/需求.md
212
+ todo_file: superengineer/${demand_name}/todo.md
213
+ reference_files: []
214
+ code_path: ../../../code
215
+ output_dir: superengineer/${demand_name}/output
216
+ openspec:
217
+ changes_dir: ../openspec/changes
218
+ ```
219
+
220
+ `demand_file` 可以是本地 Markdown,也可以是飞书/Lark 云文档 URL。使用云文档时需要先安装并授权官方 CLI:
221
+
222
+ ```bash
223
+ npx @larksuite/cli@latest install
224
+ lark-cli config init --new
225
+ lark-cli auth login --recommend
226
+ ```
227
+
228
+ 如果同一个工作空间经常切换需求,可以用 `vars` 避免重复修改路径:
229
+
230
+ ```yaml
231
+ version: 1
232
+ mode: auto
233
+ workflow_source: openspec
234
+ vars:
235
+ demand_name: 7-deamnd-addition-rate
236
+ demand_file: superengineer/${demand_name}/需求.md
237
+ todo_file: superengineer/${demand_name}/todo.md
238
+ reference_files:
239
+ - ../docs/需求分析与实现指南.md
240
+ code_path: ../../../code
241
+ output_dir: superengineer/${demand_name}/output
242
+ openspec:
243
+ changes_dir: ../openspec/changes
244
+ ```
245
+
246
+ OpenSpec change 名称不从 `demand_name` 推导。请在 `/se:propose <change-name>` 后显式指定,例如 `/se:propose demand-addition-rate`。后续 `/se:bridge`、`/se:apply` 会使用 propose 阶段记录的当前 change。
247
+
248
+ skill 自身配置位于:
249
+
250
+ ```text
251
+ ~/.super-engineer/skill-config.yml
252
+ ```
253
+
254
+ 如果该文件不存在,首次初始化时会自动生成默认配置并暂停流程,等待补全。
255
+
256
+ ## 运行时产物
257
+
258
+ 给机器读取的会话产物:
259
+
260
+ ```text
261
+ <workspace>/.super-engineer/current-session.json
262
+ <workspace>/.super-engineer/sessions/<session_id>/discovery.json
263
+ <workspace>/.super-engineer/sessions/<session_id>/plan.json
264
+ <workspace>/.super-engineer/sessions/<session_id>/self-check.json
265
+ <workspace>/.super-engineer/sessions/<session_id>/review.json
266
+ <workspace>/.super-engineer/sessions/<session_id>/verify.json
267
+ <workspace>/.super-engineer/sessions/<session_id>/status.json
268
+ ```
269
+
270
+ 给人查看的报告:
271
+
272
+ ```text
273
+ <output_dir>/<session_id>/discovery.md
274
+ <output_dir>/<session_id>/plan.md
275
+ <output_dir>/<session_id>/self-check.md
276
+ <output_dir>/<session_id>/review.md
277
+ <output_dir>/<session_id>/verify.md
278
+ ```
279
+
280
+ OpenSpec 模式额外产物:
281
+
282
+ ```text
283
+ <workspace>/.super-engineer/openspec-bridge-context.json
284
+ <change_dir>/super-engineer/execution-summary.json
285
+ <change_dir>/super-engineer/archive-input.json
286
+ <change_dir>/super-engineer/archive-result.json
287
+ ```
288
+
289
+ ## 文档入口
290
+
291
+ - [docs/se命令协议.md](/Users/muke/Documents/personal/codex/super-engineer/docs/se命令协议.md)
292
+ - [docs/中文使用手册.md](/Users/muke/Documents/personal/codex/super-engineer/docs/中文使用手册.md)
293
+ - [docs/项目架构与设计说明.md](/Users/muke/Documents/personal/codex/super-engineer/docs/项目架构与设计说明.md)
294
+ - [super-engineer-workflow/SKILL.md](/Users/muke/Documents/personal/codex/super-engineer/super-engineer-workflow/SKILL.md)
295
+ - [super-engineer-workflow/references/workflow.md](/Users/muke/Documents/personal/codex/super-engineer/super-engineer-workflow/references/workflow.md)
296
+ - [super-engineer-workflow/references/contracts.md](/Users/muke/Documents/personal/codex/super-engineer/super-engineer-workflow/references/contracts.md)
297
+
298
+ ## 许可证
299
+
300
+ 本项目使用 [MIT License](/Users/muke/Documents/personal/codex/super-engineer/LICENSE)。
package/SECURITY.md ADDED
@@ -0,0 +1,21 @@
1
+ # Security Policy
2
+
3
+ ## 安全边界
4
+
5
+ Super Engineer 会读取和写入本地工作区、Codex / Claude skill 目录以及配置的代码目录。使用前应确认当前工作区是可信目录。
6
+
7
+ ## 不应提交或发布的内容
8
+
9
+ - `.super-engineer/` 会话状态与执行产物
10
+ - `superengineer/` 需求中间产物
11
+ - `workspace.yml` 中的个人绝对路径
12
+ - webhook、token、cookie、账号密码
13
+ - `__pycache__/`、`.DS_Store` 等本地缓存
14
+
15
+ ## 通知集成
16
+
17
+ 飞书、PushPlus 等通知配置应放在本机 `~/.super-engineer/skill-config.yml` 中,不应提交到仓库。
18
+
19
+ ## 漏洞反馈
20
+
21
+ 如果发现安全问题,请通过 GitHub issue 联系维护者,并避免在 issue 中公开敏感信息。
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env node
2
+ const { spawnSync } = require('child_process')
3
+ const path = require('path')
4
+
5
+ const root = path.resolve(__dirname, '..')
6
+ const args = process.argv.slice(2)
7
+
8
+ runPython(path.join(root, 'scripts', 'se-cli.py'), args)
9
+
10
+ function runPython(script, rest) {
11
+ const candidates = process.platform === 'win32' ? ['python', 'python3'] : ['python3', 'python']
12
+ for (const bin of candidates) {
13
+ const result = spawnSync(bin, [script, ...rest], { stdio: 'inherit' })
14
+ if (result.error && result.error.code === 'ENOENT') continue
15
+ process.exit(result.status || 0)
16
+ }
17
+ console.error('Python 3 is required but was not found in PATH.')
18
+ process.exit(1)
19
+ }