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
@@ -0,0 +1,43 @@
1
+ # 公开发布检查清单
2
+
3
+ 本文用于发布 `super-engineer-workflow` npm 包前自查。
4
+
5
+ ## 必须检查
6
+
7
+ - `package.json` 已包含 `name`、`version`、`description`、`license`、`author`、`repository`、`homepage`、`bugs`、`engines`、`publishConfig`。
8
+ - `README.md` 首屏说明清楚:这是什么、适合什么场景、如何 5 分钟开始。
9
+ - `LICENSE`、`CHANGELOG.md`、`CONTRIBUTING.md`、`SECURITY.md` 已存在。
10
+ - `npm run check` 通过。
11
+ - `npm run smoke` 通过。
12
+ - `npm run pack:check` 通过,并确认包内不包含本地工作区产物、缓存文件、密钥、个人绝对路径。
13
+ - `node bin/super-engineer.js --help` 正常。
14
+ - `node bin/super-engineer.js version` 正常。
15
+ - `node bin/super-engineer.js init --yes --install none --workspace <tmp> ...` 正常。
16
+ - `node bin/super-engineer.js doctor --workspace <tmp>` 正常。
17
+
18
+ ## CLI 能力
19
+
20
+ 公开包至少应提供:
21
+
22
+ - `se init`:交互式初始化。
23
+ - `se doctor`:检查本机环境和工作区配置。
24
+ - `se install`:安装 skill 到 Codex / Claude。
25
+ - `se sync`:强制同步当前包内 skill 到 Codex / Claude。
26
+ - `se migrate`:补齐旧工作区缺失配置项。
27
+ - `se version`:显示版本。
28
+
29
+ ## 技术规范建议
30
+
31
+ - 保持 CLI 无第三方运行时依赖,降低安装失败概率。
32
+ - 所有本地路径默认支持相对路径和绝对路径。
33
+ - 不把通知 webhook、token、cookie 写入仓库,只放在用户本机配置。
34
+ - 不让 AI 手写状态文件、验证报告、通知记录等标准产物。
35
+ - npm 包只发布 skill、脚本、文档和许可证,不发布工作区中间产物。
36
+ - 发布前用 CI 在 macOS、Windows、Linux 上跑 smoke test。
37
+
38
+ ## 仍可继续增强
39
+
40
+ - 增加 `se templates`,列出 Java / Node / Go / Python / 通用存量系统模板。
41
+ - 增加 `se doctor --fix`,自动创建缺失目录或提示最小修复命令。
42
+ - 增加 E2E fixture,完整验证 `openspec + auto` 和 `todo + auto` 状态流。
43
+ - 增加 npm provenance / signed publishing,提升供应链可信度。
@@ -0,0 +1,419 @@
1
+ # 快速初始化工作区
2
+
3
+ 这份文档用于从零准备一个可运行的 `super-engineer + OpenSpec` 工作区。目标是让用户只需要准备目录、配置文件和提示词,后续由 AI 根据 skill 调用受控脚本推进流程。
4
+
5
+ ## 1. 目录约定
6
+
7
+ 推荐把工作区、代码仓库和 OpenSpec 放在同一个上层目录下:
8
+
9
+ ```text
10
+ ai-workspace/
11
+ ├── workspace.yml
12
+ ├── docs/
13
+ │ ├── 需求分析与实现指南.md
14
+ │ └── 开发规范.md
15
+ ├── openspec/
16
+ │ ├── specs/
17
+ │ └── changes/
18
+ └── superengineer/
19
+ └── 10-your-demand/
20
+ └── 需求.md
21
+
22
+ code/
23
+ ├── frontend-app/
24
+ ├── item-core/
25
+ └── other-service/
26
+ ```
27
+
28
+ 约定:
29
+
30
+ - `ai-workspace` 是每次打开给 AI 的工作区根目录。
31
+ - `workspace.yml` 必须放在 `ai-workspace` 根目录。
32
+ - `openspec/` 放在 `ai-workspace` 下。
33
+ - `superengineer/<demand_name>/` 放当前需求输入、桥接 todo 和输出报告。
34
+ - `code_path` 指向真实代码目录,可以是单仓库,也可以是多仓库聚合目录。
35
+
36
+ ## 2. 初始化 OpenSpec
37
+
38
+ 在 `ai-workspace` 根目录初始化 OpenSpec:
39
+
40
+ ```bash
41
+ cd /path/to/ai-workspace
42
+ openspec init . --tools codex,claude
43
+ ```
44
+
45
+ 初始化后应至少存在:
46
+
47
+ ```text
48
+ ai-workspace/
49
+ └── openspec/
50
+ ├── specs/
51
+ └── changes/
52
+ ```
53
+
54
+ 如果团队只用 Codex:
55
+
56
+ ```bash
57
+ openspec init . --tools codex
58
+ ```
59
+
60
+ 如果团队只用 Claude:
61
+
62
+ ```bash
63
+ openspec init . --tools claude
64
+ ```
65
+
66
+ 重要约束:
67
+
68
+ - 不要在 `ai-workspace/openspec` 目录里再次执行 `openspec init`。
69
+ - OpenSpec CLI 的工作目录应该是 `ai-workspace`,不是 `ai-workspace/openspec`。
70
+ - `workspace.yml.openspec.changes_dir` 推荐写 `openspec/changes`。
71
+
72
+ ## 3. 安装 Skill
73
+
74
+ Codex skill 目录:
75
+
76
+ ```text
77
+ ~/.codex/skills/super-engineer-workflow
78
+ ```
79
+
80
+ Claude skill 目录:
81
+
82
+ ```text
83
+ ~/.claude/skills/super-engineer-workflow
84
+ ```
85
+
86
+ 如果是从本项目同步:
87
+
88
+ ```bash
89
+ rsync -a --delete super-engineer-workflow/ ~/.codex/skills/super-engineer-workflow/
90
+ rsync -a --delete super-engineer-workflow/ ~/.claude/skills/super-engineer-workflow/
91
+ ```
92
+
93
+ 同步后可以检查:
94
+
95
+ ```bash
96
+ python3 -m py_compile ~/.codex/skills/super-engineer-workflow/scripts/*.py
97
+ python3 -m py_compile ~/.claude/skills/super-engineer-workflow/scripts/*.py
98
+ ```
99
+
100
+ 也可以使用项目自带引导脚本安装并初始化工作区。默认是一步一步的交互式向导:
101
+
102
+ ```bash
103
+ cd /path/to/super-engineer
104
+ python3 scripts/se-setup.py
105
+ ```
106
+
107
+ 脚本会按 7 个步骤执行:
108
+
109
+ 1. 环境检查:展示 Python、skill 目录、OpenSpec CLI 是否可用。
110
+ 2. 选择安装目标:安装到 Codex、Claude、两者都安装,或暂不安装。
111
+ 3. 选择业务工作区目录。
112
+ 4. 配置代码目录 `code_path` 和当前需求目录名。
113
+ 5. 选择输入模式:`openspec` 或 `todo`。
114
+ 6. 选择是否尝试执行 `openspec init`。
115
+ 7. 展示初始化摘要,确认后再真正写入文件。
116
+
117
+ 如果需要非交互初始化:
118
+
119
+ ```bash
120
+ python3 scripts/se-setup.py \
121
+ --yes \
122
+ --install both \
123
+ --workspace /path/to/ai-workspace \
124
+ --code-path ../code \
125
+ --demand-name 10-your-demand \
126
+ --source openspec \
127
+ --mode auto
128
+ ```
129
+
130
+ 常用参数:
131
+
132
+ - `--install both`:同时安装到 Codex 和 Claude。本机只用其中一个时,可改为 `codex` 或 `claude`。
133
+ - `--workspace`:业务工作区根目录。
134
+ - `--code-path`:真实代码目录,写入 `workspace.yml.code_path`。
135
+ - `--demand-name`:当前需求目录名。
136
+ - `--source`:`openspec` 或 `todo`。
137
+ - `--mode`:`auto` 或 `manual`。
138
+ - `--force-skill`:安装 skill 时先删除旧目录再复制。
139
+
140
+ 如果发布成 npm 包,初始化入口可以变为:
141
+
142
+ ```bash
143
+ npx super-engineer-workflow init
144
+ ```
145
+
146
+ 或全局安装后使用:
147
+
148
+ ```bash
149
+ npm install -g super-engineer-workflow
150
+ se init
151
+ ```
152
+
153
+ 常用 CLI:
154
+
155
+ ```bash
156
+ se init # 交互式安装 skill 并初始化工作区
157
+ se doctor # 检查本机环境和 workspace.yml
158
+ se install # 安装 skill 到 Codex / Claude
159
+ se sync # 强制同步最新 skill 到 Codex / Claude
160
+ se migrate # 补齐旧工作区缺失配置
161
+ se version # 查看版本
162
+ ```
163
+
164
+ npm 安装的核心要求:
165
+
166
+ - `package.json` 声明 `bin.super-engineer` 和 `bin.se`。
167
+ - bin 脚本转发到 `scripts/se-setup.py`。
168
+ - 发布前执行 `npm pack --dry-run` 检查包内容。
169
+ - 首次发布执行 `npm publish --access public`,后续升级先更新 `package.json.version` 再发布。
170
+
171
+ ## 4. 安装快捷命令
172
+
173
+ Claude Code 的快捷命令放在工作区:
174
+
175
+ ```text
176
+ ai-workspace/.claude/commands/se/
177
+ ```
178
+
179
+ Codex 的快捷命令放在全局:
180
+
181
+ ```text
182
+ ~/.codex/prompts/
183
+ ```
184
+
185
+ 如果没有快捷命令,也可以直接把 `/se:*` 提示词发给 AI。skill 仍然能识别并执行。
186
+
187
+ 常用命令:
188
+
189
+ ```text
190
+ /se:propose <change-name>
191
+ /se:bridge
192
+ /se:plan
193
+ /se:apply
194
+ /se:status
195
+ /se:archive-check
196
+ /se:archive
197
+ ```
198
+
199
+ ## 5. 配置 workspace.yml
200
+
201
+ OpenSpec + auto 推荐配置:
202
+
203
+ ```yaml
204
+ version: 1
205
+ mode: auto
206
+ workflow_source: openspec
207
+
208
+ vars:
209
+ demand_name: 10-your-demand
210
+
211
+ demand_file: superengineer/${demand_name}/需求.md
212
+ todo_file: superengineer/${demand_name}/todo.md
213
+
214
+ reference_files:
215
+ - docs/需求分析与实现指南.md
216
+ - docs/开发规范.md
217
+
218
+ code_path: ../code
219
+ output_dir: superengineer/${demand_name}/output
220
+
221
+ openspec:
222
+ changes_dir: openspec/changes
223
+ ```
224
+
225
+ 字段说明:
226
+
227
+ - `mode: auto`:`/se:apply` 后自动推进实现、自查、审查、验证。
228
+ - `workflow_source: openspec`:先走 OpenSpec change,再桥接到 todo。
229
+ - `vars.demand_name`:当前需求目录名。
230
+ - `demand_file`:原始需求输入。
231
+ - `todo_file`:`/se:bridge` 生成的交付入口。
232
+ - `reference_files`:AI 在 propose / plan / review 阶段必须读取的参考资料。
233
+ - `code_path`:真实代码目录。
234
+ - `openspec.changes_dir`:固定推荐 `openspec/changes`。
235
+
236
+ 如果需求来源是飞书云文档:
237
+
238
+ ```yaml
239
+ demand_file: https://example.feishu.cn/wiki/xxxx
240
+ ```
241
+
242
+ 本机需要安装并授权飞书官方 `lark-cli`:
243
+
244
+ ```bash
245
+ npx @larksuite/cli@latest install
246
+ lark-cli config init --new
247
+ lark-cli auth login --recommend
248
+ lark-cli auth status
249
+ ```
250
+
251
+ ## 6. 准备需求目录
252
+
253
+ 创建需求目录:
254
+
255
+ ```text
256
+ ai-workspace/superengineer/10-your-demand/
257
+ └── 需求.md
258
+ ```
259
+
260
+ `需求.md` 建议包含:
261
+
262
+ - 背景和目标
263
+ - 业务规则
264
+ - 接口或页面范围
265
+ - 涉及服务
266
+ - 数据表或字段
267
+ - 验收标准
268
+ - 明确不做的范围
269
+
270
+ ## 7. 开始 OpenSpec 工作流
271
+
272
+ 第一步,生成 OpenSpec change:
273
+
274
+ ```text
275
+ /se:propose your-change-name
276
+ 请根据当前 workspace 的 demand_file 生成或完善 OpenSpec change。
277
+ 不要改代码。
278
+ 过程中请使用中文。
279
+ ```
280
+
281
+ 这一步只允许生成或完善:
282
+
283
+ ```text
284
+ openspec/changes/your-change-name/proposal.md
285
+ openspec/changes/your-change-name/design.md
286
+ openspec/changes/your-change-name/tasks.md
287
+ openspec/changes/your-change-name/specs/**
288
+ ```
289
+
290
+ 完成后状态必须是:
291
+
292
+ ```text
293
+ phase=proposed
294
+ allowed_next=/se:bridge
295
+ ```
296
+
297
+ 第二步,桥接成 todo:
298
+
299
+ ```text
300
+ /se:bridge
301
+ 针对当前 OpenSpec change 生成桥接 todo,并总结待审核项。
302
+ 不要改代码,不要进入实现。
303
+ 过程中请使用中文。
304
+ ```
305
+
306
+ 这一步会生成:
307
+
308
+ ```text
309
+ superengineer/10-your-demand/todo.md
310
+ ```
311
+
312
+ 第三步,人工审核 `todo.md`。
313
+
314
+ 如果发现需求或任务有偏差,先修改 `需求.md` 或飞书文档,然后重新执行:
315
+
316
+ ```text
317
+ /se:propose your-change-name
318
+ 当前需求有补充,请基于修改后的 demand_file 修正当前 OpenSpec change。
319
+ 不要创建新的 change。
320
+ 不要改代码。
321
+ 过程中请使用中文。
322
+ ```
323
+
324
+ 然后再次执行:
325
+
326
+ ```text
327
+ /se:bridge
328
+ ```
329
+
330
+ 第四步,审核通过后进入交付:
331
+
332
+ ```text
333
+ /se:apply
334
+ 我已审核当前桥接 todo,可以进入交付阶段。
335
+ 如果没有硬阻塞,自动推进到实现、自查、审查和验证。
336
+ 过程中请使用中文。
337
+ ```
338
+
339
+ ## 8. 验证初始化是否正确
340
+
341
+ 检查 OpenSpec 路径是否正确:
342
+
343
+ ```text
344
+ 正确:ai-workspace/openspec/changes/<change-name>
345
+ 错误:ai-workspace/openspec/openspec/changes/<change-name>
346
+ ```
347
+
348
+ 如果出现 `openspec/openspec/changes`,说明 OpenSpec CLI 的工作目录错了,应该从 `ai-workspace` 重新执行工作流。
349
+
350
+ 检查状态:
351
+
352
+ ```text
353
+ /se:status
354
+ 请检查当前工作流状态,并说明当前阶段、允许的下一步和阻塞项。
355
+ ```
356
+
357
+ 正常阶段顺序:
358
+
359
+ ```text
360
+ draft
361
+ -> proposed
362
+ -> bridged
363
+ -> planned
364
+ -> implementing
365
+ -> self_checked
366
+ -> reviewed
367
+ -> verified
368
+ -> archive_ready
369
+ -> archived
370
+ ```
371
+
372
+ ## 9. 最小可用流程
373
+
374
+ 如果只想快速跑通一轮,按这个顺序:
375
+
376
+ ```text
377
+ /se:propose your-change-name
378
+ 请根据当前 workspace 的 demand_file 生成或完善 OpenSpec change。
379
+ 不要改代码。
380
+ 过程中请使用中文。
381
+ ```
382
+
383
+ ```text
384
+ /se:bridge
385
+ 针对当前 OpenSpec change 生成桥接 todo,并总结待审核项。
386
+ 不要改代码,不要进入实现。
387
+ 过程中请使用中文。
388
+ ```
389
+
390
+ 人工审核:
391
+
392
+ ```text
393
+ superengineer/<demand_name>/todo.md
394
+ ```
395
+
396
+ ```text
397
+ /se:apply
398
+ 我已审核当前桥接 todo,可以进入交付阶段。
399
+ 如果没有硬阻塞,自动推进到实现、自查、审查和验证。
400
+ 过程中请使用中文。
401
+ ```
402
+
403
+ ## 10. 常见问题
404
+
405
+ ### `/se:propose` 会不会自动生成 todo?
406
+
407
+ 不会。`/se:propose` 只能生成 OpenSpec change 文档。只有显式执行 `/se:bridge` 才允许生成或重写 `todo_file`。
408
+
409
+ ### `workspace.yml` 能不能让 AI 自动修改?
410
+
411
+ 不能。`workspace.yml` 是工作空间契约,只能由用户维护。AI 只能读取和校验。
412
+
413
+ ### `todo.md` 审核后发现不对怎么办?
414
+
415
+ 不要手工把 `tasks.md` 同步到 `todo.md`。正确做法是补充需求,重新执行 `/se:propose <change-name>`,然后重新 `/se:bridge`。
416
+
417
+ ### 可以跳过 `/se:bridge` 直接 `/se:apply` 吗?
418
+
419
+ OpenSpec 模式下不可以。`/se:apply` 前必须先有经过人工审核的桥接 todo。