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.
- package/CHANGELOG.md +9 -0
- package/CONTRIBUTING.md +34 -0
- package/LICENSE +21 -0
- package/README.md +300 -0
- package/SECURITY.md +21 -0
- package/bin/super-engineer.js +19 -0
- package/docs/se/345/221/275/344/273/244/345/215/217/350/256/256.md +335 -0
- package/docs//344/270/255/346/226/207/344/275/277/347/224/250/346/211/213/345/206/214.md +707 -0
- 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
- 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
- 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
- package/package.json +55 -0
- package/scripts/se-cli.py +301 -0
- package/scripts/se-setup.py +331 -0
- package/scripts/se-smoke-test.py +86 -0
- package/super-engineer-workflow/SKILL.md +439 -0
- package/super-engineer-workflow/adapters/go.yml +8 -0
- package/super-engineer-workflow/adapters/java-gradle.yml +8 -0
- package/super-engineer-workflow/adapters/java-maven.yml +8 -0
- package/super-engineer-workflow/adapters/node-react.yml +8 -0
- package/super-engineer-workflow/adapters/node-vue.yml +8 -0
- package/super-engineer-workflow/adapters/python.yml +8 -0
- package/super-engineer-workflow/agents/openai.yaml +4 -0
- package/super-engineer-workflow/assets/config-schema.json +100 -0
- package/super-engineer-workflow/assets/config.example.yml +12 -0
- package/super-engineer-workflow/assets/plan-schema.json +362 -0
- package/super-engineer-workflow/assets/status-schema.json +83 -0
- package/super-engineer-workflow/assets/workspace.example.yml +25 -0
- package/super-engineer-workflow/config.example.yml +12 -0
- package/super-engineer-workflow/references/contracts.md +39 -0
- package/super-engineer-workflow/references/execution-modes.md +38 -0
- package/super-engineer-workflow/references/java.md +21 -0
- package/super-engineer-workflow/references/planning.md +45 -0
- package/super-engineer-workflow/references/platform-openclaw.md +10 -0
- package/super-engineer-workflow/references/project-docs.md +7 -0
- package/super-engineer-workflow/references/review-checklist.md +26 -0
- package/super-engineer-workflow/references/se-commands.md +582 -0
- package/super-engineer-workflow/references/verify-checklist.md +45 -0
- package/super-engineer-workflow/references/workflow.md +208 -0
- package/super-engineer-workflow/scripts/archive-openspec.py +110 -0
- package/super-engineer-workflow/scripts/bootstrap-openspec.py +42 -0
- package/super-engineer-workflow/scripts/common.py +3285 -0
- package/super-engineer-workflow/scripts/generate-discovery.py +185 -0
- package/super-engineer-workflow/scripts/generate-review-report.py +296 -0
- package/super-engineer-workflow/scripts/generate-self-check.py +185 -0
- package/super-engineer-workflow/scripts/generate-smart-plan.py +429 -0
- package/super-engineer-workflow/scripts/init-workspace.py +68 -0
- package/super-engineer-workflow/scripts/prepare-archive-openspec.py +186 -0
- package/super-engineer-workflow/scripts/propose-openspec.py +170 -0
- package/super-engineer-workflow/scripts/run-verify-and-report.py +399 -0
- package/super-engineer-workflow/scripts/run-workflow.py +506 -0
- package/super-engineer-workflow/scripts/update-status.py +43 -0
- package/super-engineer-workflow/scripts/writeback-openspec.py +311 -0
package/CHANGELOG.md
ADDED
package/CONTRIBUTING.md
ADDED
|
@@ -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
|
+
}
|