alanbox 0.1.2 → 0.1.4
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/0boxer/AGENTS.md +26 -0
- package/0boxer/src/AGENTS.md +16 -0
- package/0boxer/src/cli.js +53 -0
- package/0boxer/src/commands/AGENTS.md +16 -0
- package/{0commondflowv1 → 0boxer}/src/commands/install.js +56 -0
- package/{0commondflowv1 → 1swarmer}/AGENTS.md +14 -12
- package/1swarmer/src/AGENTS.md +28 -0
- package/{0commondflowv1 → 1swarmer}/src/args.js +8 -1
- package/{0commondflowv1 → 1swarmer}/src/cli.js +27 -17
- package/1swarmer/src/commands/AGENTS.md +31 -0
- package/{0commondflowv1 → 1swarmer}/src/commands/doctor.js +2 -2
- package/1swarmer/src/commands/review-file.js +997 -0
- package/{0commondflowv1 → 1swarmer}/src/core/AGENTS.md +2 -2
- package/{0commondflowv1 → 1swarmer}/src/core/prompt-templates.js +1 -1
- package/{0commondflowv1 → 1swarmer}/src/core/storage.js +1 -1
- package/{0commondflowv1 → 1swarmer}/src/prompt/AGENTS.md +1 -1
- package/{0commondflowv1 → 1swarmer}/src/prompt/default.md +1 -1
- package/{0commondflowv1 → 1swarmer}/src/prompt/synthesizer.md +1 -1
- package/{0commondflowv1 → 1swarmer}/src/prompt/verifier.md +1 -1
- package/{0commondflowv1 → 1swarmer}/src/runner/AGENTS.md +4 -3
- package/{0commondflowv1 → 1swarmer}/src/runner/codex-runner.js +23 -3
- package/2designer/README.md +42 -0
- package/2designer/dist/cdp-engine-4AIWSWXO.js +314 -0
- package/2designer/dist/cdp-engine-4AIWSWXO.js.map +1 -0
- package/2designer/dist/cdp-engine-SG4K2BCX.js +10 -0
- package/2designer/dist/cdp-engine-SG4K2BCX.js.map +1 -0
- package/2designer/dist/chunk-7X7PTLZH.js +185 -0
- package/2designer/dist/chunk-7X7PTLZH.js.map +1 -0
- package/2designer/dist/chunk-DPOWNFOH.js +313 -0
- package/2designer/dist/chunk-DPOWNFOH.js.map +1 -0
- package/2designer/dist/chunk-ISUUIOO7.js +58 -0
- package/2designer/dist/chunk-ISUUIOO7.js.map +1 -0
- package/2designer/dist/chunk-NLYFLQ3C.js +74 -0
- package/2designer/dist/chunk-NLYFLQ3C.js.map +1 -0
- package/2designer/dist/chunk-UVKSRKXR.js +71 -0
- package/2designer/dist/chunk-UVKSRKXR.js.map +1 -0
- package/2designer/dist/cli.js +748 -0
- package/2designer/dist/cli.js.map +1 -0
- package/2designer/dist/index.d.ts +118 -0
- package/2designer/dist/index.js +37 -0
- package/2designer/dist/index.js.map +1 -0
- package/2designer/dist/playwright-engine-YXBY3KEN.js +186 -0
- package/2designer/dist/playwright-engine-YXBY3KEN.js.map +1 -0
- package/2designer/dist/playwright-engine-YXGDTSZ5.js +8 -0
- package/2designer/dist/playwright-engine-YXGDTSZ5.js.map +1 -0
- package/2designer/dist/tint-UD4CJ7S2.js +7 -0
- package/2designer/dist/tint-UD4CJ7S2.js.map +1 -0
- package/2designer/dist/tint-YN63MLVN.js +60 -0
- package/2designer/dist/tint-YN63MLVN.js.map +1 -0
- package/2designer/package.json +56 -0
- package/4reporter/README.md +24 -0
- package/4reporter/dist/cli.js +464 -0
- package/4reporter/dist/cli.js.map +1 -0
- package/4reporter/dist/index.d.ts +108 -0
- package/4reporter/dist/index.js +445 -0
- package/4reporter/dist/index.js.map +1 -0
- package/4reporter/package.json +39 -0
- package/README.md +20 -9
- package/bin/alanbox.js +11 -0
- package/bin/designer.js +10 -0
- package/bin/reporter.js +11 -0
- package/bin/swarmer.js +11 -0
- package/cli.js +178 -0
- package/hooks/hooks.json +1 -1
- package/mcp/README.md +7 -1
- package/mcp/config.toml +4 -0
- package/package.json +28 -11
- package/plugin/AGENTS.md +2 -2
- package/plugin/plugin.json +7 -7
- package/shared/AGENTS.md +15 -0
- package/shared/package-args.js +68 -0
- package/skills/AGENTS.md +9 -5
- package/skills/aitool/SKILL.md +36 -0
- package/skills/desginer/SKILL.md +142 -0
- package/skills/swarmer/SKILL.md +146 -0
- package/0commondflowv1/src/AGENTS.md +0 -26
- package/0commondflowv1/src/commands/AGENTS.md +0 -29
- package/bin/multirunagent.js +0 -15
- package/skills/aibox-swam/SKILL.md +0 -77
- package/skills/sub-codex-doctor/SKILL.md +0 -27
- package/skills/sub-codex-swarm/SKILL.md +0 -56
- /package/{0commondflowv1 → 1swarmer}/res/three-lens-review.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/commands/info.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/commands/swarm/auto.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/commands/swarm/custom.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/commands/swarm/index.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/core/handoff.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/core/prompt-builder.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/core/swarm-executor.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/core/workers.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/core/workflow-planner.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/core/workflow-storage.js +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/prompt/reviewer.md +0 -0
- /package/{0commondflowv1 → 1swarmer}/src/runner/config.json +0 -0
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: desginer
|
|
3
|
+
description: "设计稿到运行页面做 UI 高精度。"
|
|
4
|
+
---
|
|
5
|
+
# UI 高精度还原:运行页 ↔ 设计稿网站
|
|
6
|
+
|
|
7
|
+
目标是把一个运行页面精确还原到设计稿。`designer` 是运行页面精确还原到设计稿的工作流
|
|
8
|
+
|
|
9
|
+
## 工作流输入要求
|
|
10
|
+
|
|
11
|
+
开始改代码前,必须拿到这些信息;缺失时先向用户要,不要用整页或随机节点替代:
|
|
12
|
+
|
|
13
|
+
- 运行页 URL:要还原的运行页面。
|
|
14
|
+
- 运行页 selector/JS 路径
|
|
15
|
+
- 设计稿 URL:设计稿网页。
|
|
16
|
+
- 设计稿 selector/JS 路径
|
|
17
|
+
- CDP 地址:默认 `127.0.0.1:8000`。
|
|
18
|
+
- 产物根目录:固定使用 `C:\Users\lenovo\Desktop\all-project\.tmp\<当天日期>-<hash>\`,每轮放在递增的 `round<N>\` 子目录,例如 `round1\`、`round2\`、`round3\`。
|
|
19
|
+
|
|
20
|
+
优先使用用户提供的精确 JS 路径。`body > div:nth-child(...)` 这类路径只适合当前会话验证,不能当长期稳定 selector 写进代码。
|
|
21
|
+
|
|
22
|
+
## 工作流初始化
|
|
23
|
+
|
|
24
|
+
用下方命令启动 Chrome页面;注意要一个页面两个tab,防止页面状态的丢失:
|
|
25
|
+
```powershell
|
|
26
|
+
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
|
|
27
|
+
--remote-debugging-address=127.0.0.1 `
|
|
28
|
+
--remote-debugging-port=8000 `
|
|
29
|
+
--user-data-dir="C:\Users\lenovo\AppData\Local\Temp\codex-chrome-debug-ui" `
|
|
30
|
+
--no-first-run `
|
|
31
|
+
--no-default-browser-check `
|
|
32
|
+
--ignore-certificate-errors `
|
|
33
|
+
"<INITIAL_LOGIN_OR_RUNTIME_URL>"
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
遇到登录、权限、证书、白屏、网络拦截或需要人工操作的问题时,不要给最终失败结论。明确告诉用户在这个 Chrome 窗口处理,等待用户完成后继续同一轮测量和叠图。
|
|
37
|
+
|
|
38
|
+
初始化阶段必须创建 `C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\all\message.md`,把本次要截图和测量的锚点写进去。这个文件是后续所有轮次、Codex/Claude 子 agent 和 TODO 合并的共享契约,避免因为设计稿和运行页截图坐标不一致浪费轮次。至少记录:URL、selector、CDP 地址、初始截图坐标等信息。
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
## 主循环
|
|
42
|
+
先建立本次任务产物目录。日期用当天日期,hash 用运行页 URL、设计稿 URL 和两边 selector 生成短 hash;无法稳定生成时用 6-8 位随机短 hash。示例:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
C:\Users\lenovo\Desktop\all-project\.tmp\2026-06-17-a1b2c3d4\
|
|
46
|
+
all\
|
|
47
|
+
message.md
|
|
48
|
+
round1\
|
|
49
|
+
\regions\
|
|
50
|
+
design.png
|
|
51
|
+
runtime.png
|
|
52
|
+
overlay.png
|
|
53
|
+
round2\
|
|
54
|
+
design.png
|
|
55
|
+
runtime.png
|
|
56
|
+
overlay.png
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
每一轮必须至少有 3 张图片:
|
|
60
|
+
|
|
61
|
+
- `design.png`:设计稿节点截图。
|
|
62
|
+
- `runtime.png`:运行页节点截图。
|
|
63
|
+
- `overlay.png`:设计稿以品红色覆盖到运行页后的重叠图。
|
|
64
|
+
|
|
65
|
+
测量 JSON 可以放在同一轮目录下,例如 `measure-design.json`、`measure-runtime.json`,但不能替代这 3 张图片。
|
|
66
|
+
|
|
67
|
+
按这个顺序循环,直到验收通过:
|
|
68
|
+
|
|
69
|
+
1. **建立锚点。** 明确运行页 selector 对应设计稿 selector。组件级任务必须拿组件根节点对组件根节点,不要乱拿整页叠图。
|
|
70
|
+
2. **生成本轮三图。** 在同一个 `round<N>\` 目录内一次性完成设计稿截图、运行页截图和重叠图;`<N>` 是当前循环轮次,第一轮用 `round1\`,修改后第二轮用 `round2\`,不得覆盖旧轮次。三张图缺任意一张,本轮无效,先补齐再分析。截图前先读取 `all\message.md`,确认本轮仍使用同一组组件根节点和坐标;如果运行页因交互状态导致 rect 改变,先更新 `all\message.md` 并说明原因。
|
|
71
|
+
```bash
|
|
72
|
+
designer screenshot --url "<designUrl>" --selector "<designSelector>" --output "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\design.png" --cdp 127.0.0.1:8000
|
|
73
|
+
designer screenshot --url "<runtimeUrl>" --selector "<runtimeSelector>" --output "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\runtime.png" --cdp 127.0.0.1:8000
|
|
74
|
+
designer overlay --design "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\design.png" --url "<runtimeUrl>" --selector "<runtimeSelector>" --output "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\overlay.png" --cdp 127.0.0.1:8000
|
|
75
|
+
```
|
|
76
|
+
如果设计节点在 Axure iframe 里,而 `screenshot` 暂不支持 `--frame`,用 Playwright/CDP 在 iframe document 内定位并截图该节点;产物仍命名为 `design.png`,后续继续用同一轮 `overlay` 命令。始终传 `--selector` 和 `--output`,让 `overlay` 以 headless 方式生成组件级像素合成图。设计图会以品红色覆盖到运行截图上;品红色明显错位处就是布局、尺寸、颜色或层级问题。
|
|
77
|
+
3. **视觉差异分区。** 同时看本轮的 `design.png`、`runtime.png`、`overlay.png`:判断布局、颜色、层级、字号、边框、圆角、间距和文案。不要只看单张截图。每轮必须生成 `changelist.json`、全量对比图和区域目录:
|
|
78
|
+
```bash
|
|
79
|
+
designer changelist --design "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\design.png" --runtime "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\runtime.png" --output "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\changelist.json" --annotated "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\changes.png" --regions-dir "C:\Users\lenovo\Desktop\all-project\.tmp\<yyyy-mm-dd>-<hash>\round<N>\regions"
|
|
80
|
+
```
|
|
81
|
+
`changelist` 只输出变更区域 JSON 和设计稿/运行图左右并排的差异高亮对比图,用来快速定位需要进一步 `measure` 的节点;默认双模式下还会生成 `changes-word-sentence.png` 与 `changes-graphic-large.png`,并在 `regions\word\<id>`、`regions\graphic\<id>` 下为每个区域导出裁剪后的 `design.png`、`runtime.png`、`compare.png` 和 `region.json`。不要把它当成 UI 是否通过的唯一判断。
|
|
82
|
+
4. (如果主布局未基本完成的跳过)**暴力并发生成 TODO。** 优先按 `regions\word\<id>` 拆分差异;如果 word 区域有 25 个,就启动 25 个独立 Codex/Claude 子 agent 并行分析,cdoex 每个子 agent 只负责一个区域目录,如果
|
|
83
|
+
|
|
84
|
+
每个 Codex/Claude 子 agent 只产出 JSON 片段,不直接改代码。片段写到当前轮临时文件,例如 `round<N>\todo-parts\word-<id>.json`;主 agent 负责合并。单个区域 JSON 片段必须按组件层级组织,类似 React 组件树,不要写平铺句子;具体格式见后文“子 agent JSON 片段格式”。
|
|
85
|
+
|
|
86
|
+
合并所有片段为 `round<N>\todo.json`。合并时按业务组件层级归并同名组件和子组件,去掉重复区域,只保留有证据的修改项;相同问题出现在多个区域时合并为一个组件 TODO,并在 `evidenceRegions` 中列出所有区。
|
|
87
|
+
5. **分析修改定量。** 对合并后的 `todo.json` 做分析,测。先去重 `measureNeeded`,再对 TODO 涉及的运行页节点和设计稿节点分别测量:
|
|
88
|
+
```bash
|
|
89
|
+
designer measure --url "<runtimeUrl>" --selector "<runtimeSelector>" --depth 0 --cdp 127.0.0.1:8000
|
|
90
|
+
designer measure --url "<designUrl>" --selector "<designSelector>" --depth 0 --cdp 127.0.0.1:8000
|
|
91
|
+
designer measure --url "<designUrl>" --frame "#mainFrame" --selector "#u0" --depth 0 --cdp 127.0.0.1:8000
|
|
92
|
+
```
|
|
93
|
+
`measure` 返回 `bbox` 与 `computedStyle`。必须用完整数据:bbox、font、color、background-color、border、padding、margin、display、visibility 缺失时重新测,不要用半截数据做判断。测量结果写回 `todo.json` 对应组件节点,形成“证据区域 → 组件层级 → 定量字段 → 修改建议”的闭环。
|
|
94
|
+
|
|
95
|
+
6. **修改实现。** 按项目 AGENTS.md、公共组件规范和现有代码风格改。先修影响最大的位移和尺寸,再修字体、颜色、边框、圆角和细节。
|
|
96
|
+
7. **重复验证。** 每次修改后重新执行“生成本轮三图”、`measure` 和 TODO 更新。不要在“感觉差不多”时停止。
|
|
97
|
+
|
|
98
|
+
## 子 agent JSON 片段格式
|
|
99
|
+
|
|
100
|
+
每个 Codex/Claude 子 agent 只产出 JSON 片段,不直接改代码。片段写到当前轮临时文件,例如 `round<N>\todo-parts\word-<id>.json`;主 agent 负责合并。单个区域 JSON 片段必须按组件层级组织,类似 React 组件树,不要写平铺句子:
|
|
101
|
+
|
|
102
|
+
```json
|
|
103
|
+
{
|
|
104
|
+
"sourceRegion": "regions/word/1",
|
|
105
|
+
"components": {
|
|
106
|
+
"开发页面的xx1组件": {
|
|
107
|
+
"selectorGuess": "",
|
|
108
|
+
"evidence": ["region.json", "compare.png"],
|
|
109
|
+
"todo": ["要怎么修改","不需要修改,设计稿合理误差"],
|
|
110
|
+
"children": {
|
|
111
|
+
"xx1的子组件xx2": {
|
|
112
|
+
"selectorGuess": "",
|
|
113
|
+
"todo": ["要怎么修改"],
|
|
114
|
+
"measureNeeded": [
|
|
115
|
+
{ "runtimeSelector": "", "designSelector": "", "reason": "需要定量确认 x/width/font" }
|
|
116
|
+
]
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## 测量规则
|
|
125
|
+
|
|
126
|
+
默认用 `measure` 测量节点的 `getBoundingClientRect()` 和 `getComputedStyle()`,并对比两边的 bbox、font、color、background-color、border、padding、margin、display、visibility。如果measure无法测量时用playwright MCP 兜底。
|
|
127
|
+
|
|
128
|
+
## 验收条件
|
|
129
|
+
|
|
130
|
+
满足任一条件才算完成:
|
|
131
|
+
|
|
132
|
+
- 可控关键节点的 `bbox` 位置和尺寸与设计稿差异达到 1px 以内,并且 `overlay.png` 没有明显品红错位。
|
|
133
|
+
- 剩余差异来自公共组件库不可修改的内部 chrome、渲染机制或浏览器字体差异,并且已经用 `measure` 证明差异来源。
|
|
134
|
+
- 剩余差异符合项目 AGENTS.md、公共组件规范或上面的实践约束,设计稿的不完善和设计稿不可以避免的不对齐,且说明具体原因和影响范围。
|
|
135
|
+
|
|
136
|
+
最终汇报要包含:使用的运行页/设计稿 selector、最后一轮 `design/runtime/overlay` 文件路径、已修 TODO、未修差异及其验收理由。
|
|
137
|
+
|
|
138
|
+
## 实践约束
|
|
139
|
+
|
|
140
|
+
- **padding 放在卡片外层,不放在内容槽。** 卡片内同时有 `XTitle` + 内容时,padding 只加在内容 div 上,会让标题贴到卡片左边沿。标准形状:外层 `rounded bg-white px-* pb-*` → `XTitle` → 内容 div 只保留布局类(`min-h-0 flex-1`)。
|
|
141
|
+
- **独立节点。** Axure 中部分节点是独立 path 节点,无布局容器。计算间距时必须测量相邻组件的 rect,用坐标差值反推这些节点的实际占位。
|
|
142
|
+
- **组件自带 chrome。** 以“卡片”形态交付的组件已自带边框、圆角、标题槽、状态栏等装饰件。
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: swarmer
|
|
3
|
+
description: 当 Codex 或 Claude 需要通过 alanbox 的 swarmer/swarm 调用子 worker、串行/并行/自动规划工作流,或通过 swarmer info 检查 worker 配置时使用。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# swarmer
|
|
7
|
+
|
|
8
|
+
本 skill 是 `alanbox` 的 worker 编排、配置检查和 provider 诊断入口。它只指导如何调用 CLI;真实执行、隔离账户、handoff、结果写入和 provider 调用都由 `swarmer` / `alanbox` 完成。
|
|
9
|
+
|
|
10
|
+
## 快速入口
|
|
11
|
+
|
|
12
|
+
```powershell
|
|
13
|
+
swarmer info
|
|
14
|
+
alanbox doctor
|
|
15
|
+
swarmer --namespace run-name --worker "codex:reviewer:检查当前改动"
|
|
16
|
+
swarmer review-file "C:\path\to\file-or-dir"
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
`swarmer` 是对外稳定入口,内部走 `swarm` 执行链路。包级命令也可以写成:
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
alanbox swarmer info
|
|
23
|
+
alanbox swarm --namespace run-name --worker "codex:reviewer:检查当前改动"
|
|
24
|
+
alanbox review-file "C:\path\to\file-or-dir"
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Worker 规格
|
|
28
|
+
|
|
29
|
+
Worker 规格格式:
|
|
30
|
+
|
|
31
|
+
```text
|
|
32
|
+
<platform-or-worker>:<role>:<prompt>
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
常用示例:
|
|
36
|
+
|
|
37
|
+
```powershell
|
|
38
|
+
swarmer --namespace codex-check --worker "codex:reviewer:复核 src 目录的正确性问题"
|
|
39
|
+
swarmer --namespace claude-check --worker "claude:reviewer:复核 src 目录的正确性问题"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 串行、并行和混合阶段
|
|
43
|
+
|
|
44
|
+
后一个 worker 必须读取前一个 worker 的结论时,重复传 `--worker`:
|
|
45
|
+
|
|
46
|
+
```powershell
|
|
47
|
+
swarmer --namespace staged-review --worker "codex:lead:先分析问题范围" --worker "claude:reviewer:基于上游结论复核"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
全部 worker 都彼此独立时,使用 `--parallel-workers`:
|
|
51
|
+
|
|
52
|
+
```powershell
|
|
53
|
+
swarmer --namespace parallel-review --parallel-workers --worker "codex:a:检查前端" --worker "claude:b:检查脚本"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
混合串行/并行阶段时,用方括号表示同一阶段并行:
|
|
57
|
+
|
|
58
|
+
```powershell
|
|
59
|
+
swarmer --namespace mixed-review --worker "codex:lead:先拆分任务" --worker "[codex:frontend:检查前端,claude:backend:检查后端]" --worker "codex:summary:汇总结论"
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
上例执行顺序是 `lead -> [frontend,backend] -> summary`。方括号内用英文逗号分隔;如果 prompt 里必须出现字面逗号,写成 `\,`。
|
|
63
|
+
|
|
64
|
+
## 自动 workflow
|
|
65
|
+
|
|
66
|
+
需要 CLI 先推荐 workflow,再确认执行时:
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
swarmer --auto "检查这个项目的主要风险" -a "codex:reviewer:检查代码正确性" -a "claude:reviewer:检查可维护性" -p "优先按目录拆分"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
自动 workflow 规则:
|
|
73
|
+
|
|
74
|
+
- `-a` / `--agent` 是可重复的 agent 规格;如需隔离账户,使用 `--account`。
|
|
75
|
+
- `-p` / `--plan-hint` 是规划指引;如需 Codex profile,使用 `--profile`。
|
|
76
|
+
- auto workflow 会调用真实 provider;已无 dry-run 预览。
|
|
77
|
+
- 不带 `-y` 时,CLI 会先推荐工作流并等待确认后才运行真实 worker。
|
|
78
|
+
|
|
79
|
+
非交互恢复待执行 workflow:
|
|
80
|
+
|
|
81
|
+
```powershell
|
|
82
|
+
swarmer --resume <runId> --namespace <namespace> -y
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## 双 CLI 文件 review
|
|
86
|
+
|
|
87
|
+
当需要 Codex CLI 和 Claude CLI 同时审查一个文件或目录,并把报告写到一个 Markdown 文件时,使用专用命令:
|
|
88
|
+
|
|
89
|
+
```powershell
|
|
90
|
+
swarmer review-file "C:\repo\src\index.ts"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
默认行为:
|
|
94
|
+
|
|
95
|
+
- 第一阶段并行调用 `codex` 和 `claude` 初审同一目标,并各自生成 `*.codex.initial.md` / `*.claude.initial.md` sidecar。
|
|
96
|
+
- 第二阶段从 sidecar 初审 md 读取 `[codex√] 检查出的内容`、`[claude√] 检查出的内容`,再合并到主报告。
|
|
97
|
+
- 后续复核直接追加链条标记:认同写成 `[codex√claude√]`,不认同写成 `[codex√claude❌]`,出现 `❌` 后继续让下一方复核,例如 `[codex√claude❌codex√]`。
|
|
98
|
+
- 共识链最后必须为 `√`;超过最大轮次仍未达成时,会追加强制最终 `√` 并保留前面 `❌` 的原因供人工复查。
|
|
99
|
+
- 报告文件默认为 `C:\Users\lenovo\Desktop\all-project\.tmp\swarm\<yyyy-mm-dd-HHmmss>-<hash>.md`。
|
|
100
|
+
|
|
101
|
+
长任务或某个 provider 超时时,可以分阶段恢复:
|
|
102
|
+
|
|
103
|
+
```powershell
|
|
104
|
+
swarmer review-file "C:\repo\src" --phase initial --providers codex,claude
|
|
105
|
+
swarmer review-file "C:\repo\src" --phase cross-check --report-file "C:\Users\lenovo\Desktop\all-project\.tmp\swarm\2026-06-18-161626-xxxxxxxx.md"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
可用参数:
|
|
109
|
+
|
|
110
|
+
- `--providers codex,claude` 指定参与执行的 provider。
|
|
111
|
+
- `--review-kind defects|improvements` 指定审查类型;未传时会从 `--context` 中的“改进/优化/性能/可维护”等词自动推断。
|
|
112
|
+
- `--report-file <path>` 复用或指定单个 Markdown 报告文件,常用于只补跑 cross-check。
|
|
113
|
+
- `--report-dir <path>` 指定目录,CLI 会在里面生成一个新的时间哈希 Markdown 文件。
|
|
114
|
+
- `--max-consensus-rounds <n>` 限制 `❌` 条目继续复核的最大轮数;默认 4,之后会按协议追加最终 `√`。
|
|
115
|
+
- `--claude-permission-mode <mode>` 覆盖 Claude 权限模式;默认是 `bypassPermissions`,用于避免非交互读取文件时卡住。
|
|
116
|
+
- `--no-claude-safe-mode` 关闭默认传给 Claude 的 `--safe-mode`;默认开启 safe mode,以减少本机 hooks/plugins 对自动化 review 的干扰。
|
|
117
|
+
- `--claude-effort <level>` 覆盖 Claude effort;默认是 `low`,用于让自动化 review 可及时返回。
|
|
118
|
+
|
|
119
|
+
## 诊断
|
|
120
|
+
|
|
121
|
+
修改配置、排查 provider、账户主目录、沙箱、命令路径或子 worker 健康状态前,先看已解析配置:
|
|
122
|
+
|
|
123
|
+
```powershell
|
|
124
|
+
swarmer info
|
|
125
|
+
swarmer info --worker worker-e7
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
需要运行 provider CLI 健康检查时:
|
|
129
|
+
|
|
130
|
+
```powershell
|
|
131
|
+
alanbox doctor
|
|
132
|
+
alanbox doctor --account codex-19b
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## 读取结果
|
|
136
|
+
|
|
137
|
+
真实运行后读取输出:
|
|
138
|
+
|
|
139
|
+
```text
|
|
140
|
+
%USERPROFILE%\.multirunagent\<namespace>\results\
|
|
141
|
+
%USERPROFILE%\.multirunagent\<namespace>\memory\index.json
|
|
142
|
+
%USERPROFILE%\.multirunagent\<namespace>\runs\<runId>\
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
`%USERPROFILE%\.multirunagent` 是兼容存储路径,不要因为命令名改成 `swarmer` 就改写这个路径。
|
|
146
|
+
`review-file` 是例外:它按用户要求把单个 Markdown review 报告写入 `C:\Users\lenovo\Desktop\all-project\.tmp\swarm` 或 `--report-root` / `--report-file` / `--report-dir` 指定位置。
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
## 0commondflowv1 src
|
|
2
|
-
|
|
3
|
-
`0commondflowv1/src` 是 `alanbox` 的当前主源码目录,负责 CLI 参数解析、命令分发、worker 编排、runner 执行、handoff、存储和 prompt 构造。入口由包根 `bin/multirunagent.js` / `index.js` 转发到 `cli.js`,npm 发布后同时暴露 `alanbox` 和兼容 bin `multirunagent`。
|
|
4
|
-
|
|
5
|
-
**Important:** 这里是 0commondflowv1 的稳定实现层。新增命令、flag、provider、worker 协议或存储行为时,要同步检查 `0commondflowv1/AGENTS.md`、README、skills 说明和 `alanbox info` / `--help` 输出;本地源码验证仍可用 `node bin/multirunagent.js ...`。
|
|
6
|
-
|
|
7
|
-
### Important files
|
|
8
|
-
|
|
9
|
-
- `cli.js` — CLI 主分发器;命令入口和 usage 文案在这里维护。
|
|
10
|
-
- `args.js` — 通用参数解析;新增 flag 时优先在这里统一处理。
|
|
11
|
-
- `commands/` — 具体 CLI 命令实现;`swarm` 拆分为 `commands/swarm/`(`index.js` 路由、`custom.js` 手动 worker、`auto.js` 推荐/确认/恢复流程),修改前先读 `commands/AGENTS.md`。
|
|
12
|
-
- `core/` — worker、handoff、storage、prompt 构造等核心协议;修改前先读 `core/AGENTS.md`。
|
|
13
|
-
- `prompt/` — 可复用 Markdown 提示词模板;修改前先读 `prompt/AGENTS.md`。
|
|
14
|
-
- `runner/` — Codex / Claude CLI 子进程执行与配置解析;修改前先读 `runner/AGENTS.md`。
|
|
15
|
-
|
|
16
|
-
### Implementation notes
|
|
17
|
-
|
|
18
|
-
- `swarm` 是 worker 执行的唯一业务入口;单 worker 使用一个 `--worker`,全并行多 worker 走 `swarm --parallel-workers`,混合串行/并行用 `--worker "[spec1,spec2]"` 表达同一阶段并行,不要复制出独立 `exec` 或 `parallel` 命令。
|
|
19
|
-
- 默认使用原生 CLI 登录态;只有显式配置隔离 home 时才设置 `CODEX_HOME` 或 `CLAUDE_CONFIG_DIR`。
|
|
20
|
-
- 多 worker 输出默认写入 `%USERPROFILE%\.multirunagent\<namespace>`,不要重新写回项目内 `.sub-codex`。
|
|
21
|
-
- Windows 兼容是长期约束;路径拼接使用 Node `path`,命令文案和示例要考虑 PowerShell。
|
|
22
|
-
|
|
23
|
-
### Verification
|
|
24
|
-
|
|
25
|
-
- 从包根目录运行:`npm run validate`
|
|
26
|
-
- 直接检查配置与参数解析:`node bin/multirunagent.js info`
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
## commands
|
|
2
|
-
|
|
3
|
-
`0commondflowv1/src/commands` 存放 `alanbox` 的具体 CLI 命令处理器。每个文件只负责一个命令的行为编排,底层 worker 解析、runner 执行、handoff 和 storage 应复用 `core/`、`runner/`、`prompt/`。
|
|
4
|
-
|
|
5
|
-
**Important:** 新增或修改命令参数时,必须同步检查 `src/args.js`、`src/cli.js` usage 文案、README 和相关 skills,避免 CLI 行为和说明不一致。
|
|
6
|
-
|
|
7
|
-
### Important files
|
|
8
|
-
|
|
9
|
-
- `swarm/index.js` — `swarm` 命令入口与路由;`--auto` / `--resume` 委托 `swarm/auto.js`,否则走 `swarm/custom.js`。`cli.js` 通过 `require('./commands/swarm')` 解析到此目录。
|
|
10
|
-
- `swarm/custom.js` — 多 worker 串行/依赖层编排;解析 worker specs 后复用共享 executor。
|
|
11
|
-
- `swarm/auto.js` — `swarm --auto` 状态机;负责 GOAP workflow 推荐、确认门、pending/resume、执行和失败重规划。
|
|
12
|
-
- `doctor.js` — 环境和 provider 健康检查;用于诊断 CLI 命令、home、认证和 dry-run。
|
|
13
|
-
- `info.js` — 输出当前配置和运行信息;应避免泄露 secret 或本机敏感路径之外的无关细节。
|
|
14
|
-
- `install.js` — 显式安装或更新 Codex/Claude skills、hooks、mcp 和 scripts;`install`、`init`、`update` 都会进入这里,Codex 额外维护 plugin manifest 与 marketplace。不要让普通包加载隐式安装资源。
|
|
15
|
-
|
|
16
|
-
### Implementation notes
|
|
17
|
-
|
|
18
|
-
- `swarm` 的 runDir 应来自 `core/storage.js`,默认在 `%USERPROFILE%\.multirunagent\<namespace>`;auto workflow run 使用 `%USERPROFILE%\.multirunagent\<namespace>\runs\<runId>`。
|
|
19
|
-
- `swarm --auto` 中 `-a` 表示 repeatable agent spec、`-p` 表示 plan hint;非 auto 命令仍保持旧 account/profile 语义,文档和 usage 必须同步说明。
|
|
20
|
-
- worker 执行统一通过 `swam`/`swarm` 开启;单 worker 使用一个 `--worker`,全并行多 worker 使用 `swarm --parallel-workers`,混合串行/并行用 `--worker "[spec1,spec2]"` 表达同一阶段并行。不要恢复独立 `exec` / `parallel` 命令或复制执行链路。
|
|
21
|
-
- `install`、`init`、`update` 支持 `--target codex|claude|both`、`--codex`、`--claude`、`--both`;未传目标时只在交互终端询问,脚本/CI 中必须显式传目标。
|
|
22
|
-
- `alanbox info` 输出解析后的 provider、command、env 和 worker 配置,是用户排查的重要依据;改动 provider、env、args 解析时要实际运行 `info` 检查(本地源码可用 `node bin/multirunagent.js info`,`--dry-run` 预览已移除)。
|
|
23
|
-
|
|
24
|
-
### Verification
|
|
25
|
-
|
|
26
|
-
- 从包根目录运行:`npm run validate`
|
|
27
|
-
- 修改命令参数或 provider/env 展示后:`node bin/multirunagent.js info`
|
|
28
|
-
- 修改 auto workflow、planner 或模板后,需实际运行一次 `swarm --auto`(已无 dry-run/JSON 离线预览)验证。
|
|
29
|
-
- 修改安装命令后额外检查:`node bin/multirunagent.js install --target codex`、`--target claude` 或 `--target both`(会真实复制资源,确认目标目录后再运行)。
|
package/bin/multirunagent.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* multirunagent 的包命令入口。
|
|
5
|
-
* bin 层保持很薄,只把命令处理交给 0commondflowv1/src/cli.js。
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
require('../0commondflowv1/src/cli').main().catch((error) => {
|
|
9
|
-
console.error(error.message || error);
|
|
10
|
-
process.exitCode = 1;
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: aibox-swam
|
|
3
|
-
description: 当 Codex 或 Claude 需要通过 alanbox 调用 swam/swarm 执行 Codex 或 Claude 子 worker 时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# aibox swam workflow
|
|
7
|
-
|
|
8
|
-
本 skill 只负责指导调用 alanbox 的 `swam`/`swarm` 命令。真实执行由 CLI 完成;不要在 skill 内复制实现逻辑。
|
|
9
|
-
|
|
10
|
-
## 入口
|
|
11
|
-
|
|
12
|
-
```powershell
|
|
13
|
-
swam --namespace run-name --worker "codex:reviewer:检查当前改动"
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
`swam` 是 `swarm` 的兼容别名;两者走同一条执行链路。
|
|
17
|
-
|
|
18
|
-
## 调用 Codex worker
|
|
19
|
-
|
|
20
|
-
```powershell
|
|
21
|
-
swam --namespace codex-check --worker "codex:reviewer:复核 src 目录的正确性问题"
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## 调用 Claude worker
|
|
25
|
-
|
|
26
|
-
```powershell
|
|
27
|
-
swam --namespace claude-check --worker "claude:reviewer:复核 src 目录的正确性问题"
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
## 串行和并行
|
|
31
|
-
|
|
32
|
-
后一个 worker 需要读取前一个 worker 的结论时,重复传 `--worker`:
|
|
33
|
-
|
|
34
|
-
```powershell
|
|
35
|
-
swam --namespace staged-review --worker "codex:lead:先分析问题范围" --worker "claude:reviewer:基于上游结论复核"
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
多个 worker 可以独立执行时,使用 `--parallel-workers`:
|
|
39
|
-
|
|
40
|
-
```powershell
|
|
41
|
-
swam --namespace parallel-review --parallel-workers --worker "codex:a:检查前端" --worker "claude:b:检查脚本"
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
混合串行/并行阶段时,用方括号表示同一阶段并行:
|
|
45
|
-
|
|
46
|
-
```powershell
|
|
47
|
-
swam --namespace mixed-review --worker "codex:lead:先拆分任务" --worker "[codex:frontend:检查前端,claude:backend:检查后端]" --worker "codex:summary:汇总结论"
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## 自动 workflow
|
|
51
|
-
|
|
52
|
-
需要 CLI 先推荐 workflow,再确认执行时:
|
|
53
|
-
|
|
54
|
-
```powershell
|
|
55
|
-
swam --auto "检查这个项目的主要风险" -a "codex:reviewer:检查代码正确性" -a "claude:reviewer:检查可维护性" -p "优先按目录拆分"
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
非交互恢复待执行 workflow:
|
|
59
|
-
|
|
60
|
-
```powershell
|
|
61
|
-
swam --resume <runId> --namespace <namespace> -y
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## 读取结果
|
|
65
|
-
|
|
66
|
-
```text
|
|
67
|
-
%USERPROFILE%\.multirunagent\<namespace>\results\
|
|
68
|
-
%USERPROFILE%\.multirunagent\<namespace>\memory\index.json
|
|
69
|
-
%USERPROFILE%\.multirunagent\<namespace>\runs\<runId>\
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
如果只是诊断配置,先用:
|
|
73
|
-
|
|
74
|
-
```powershell
|
|
75
|
-
alanbox info
|
|
76
|
-
alanbox doctor
|
|
77
|
-
```
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sub-codex-doctor
|
|
3
|
-
description: 当 Codex 或 Claude 需要检查或诊断本地 alanbox 包、worker 配置、账户主目录、CLI 命令路径、沙箱或子 worker 健康状况时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# alanbox 诊断(Doctor)
|
|
7
|
-
|
|
8
|
-
检查已解析的配置:
|
|
9
|
-
|
|
10
|
-
```powershell
|
|
11
|
-
alanbox info
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
通过 alanbox 运行 provider CLI 健康检查:
|
|
15
|
-
|
|
16
|
-
```powershell
|
|
17
|
-
alanbox doctor
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
指定某个账户或 worker:
|
|
21
|
-
|
|
22
|
-
```powershell
|
|
23
|
-
alanbox info --worker worker-e7
|
|
24
|
-
alanbox doctor --account codex-19b
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
修改配置前优先运行 `info`。当子 Codex 命令、鉴权、网络、MCP 或状态存储可能出现故障时,使用 `doctor`。
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: sub-codex-swarm
|
|
3
|
-
description: 当 Codex 或 Claude 需要使用 alanbox 的 swam/swarm 串行、并行或自动 GOAP 工作流规划,并在真实子 worker 运行前进行确认时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# alanbox 集群(swam/swarm)
|
|
7
|
-
|
|
8
|
-
当后续 worker 必须基于先前结果展开时,使用串行 swarm:
|
|
9
|
-
|
|
10
|
-
```powershell
|
|
11
|
-
swam --namespace run-name --worker "codex:lead:主分析任务" --worker "claude:reviewer:基于上游结果复核"
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
`swam` 是 `swarm` 的兼容别名,两者走同一条执行链路。
|
|
15
|
-
|
|
16
|
-
需要混合串行和并行阶段时,在一个 `--worker` 参数中用方括号包住同一阶段的多个 worker:
|
|
17
|
-
|
|
18
|
-
```powershell
|
|
19
|
-
swam --namespace run-name --worker "codex:a:先分析 A" --worker "[codex:c:并行检查 C,claude:d:并行检查 D]" --worker "codex:e:基于 C 和 D 汇总"
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
上例执行顺序是 `a -> [c,d] -> e`。方括号内用英文逗号分隔;如果 prompt 里必须出现字面逗号,写成 `\,`。
|
|
23
|
-
|
|
24
|
-
Worker 规格格式:
|
|
25
|
-
|
|
26
|
-
```text
|
|
27
|
-
<worker-or-platform>:<role>:<prompt>
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
当用户给出自然语言目标、并希望 CLI 先推荐一个工作流时,使用自动工作流:
|
|
31
|
-
|
|
32
|
-
```powershell
|
|
33
|
-
swam --auto "帮我检查我的项目有问题" -a "codex:reviewer:复核当前项目代码" -a "claude:reviewer:复核可维护性" -p "最好每个子文件夹一个子agent并行"
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
自动工作流规则:
|
|
37
|
-
|
|
38
|
-
- `swam` 作为 `swarm` 的兼容别名被接受。
|
|
39
|
-
- 在 `swarm --auto` 中,`-a` / `--agent` 是可重复的 agent 规格;如需隔离账户,使用 `--account`。
|
|
40
|
-
- 在 `swarm --auto` 中,`-p` / `--plan-hint` 是规划指引;如需 Codex profile,使用 `--profile`。
|
|
41
|
-
- auto workflow 会调用真实 provider(已无 dry-run 预览);不带 `-y` 时,CLI 会先推荐工作流并等待确认后才运行真实 worker。
|
|
42
|
-
- 在非交互模式下,可通过以下方式恢复一个待处理的运行:
|
|
43
|
-
|
|
44
|
-
```powershell
|
|
45
|
-
swam --resume <runId> --namespace <namespace> -y
|
|
46
|
-
```
|
|
47
|
-
|
|
48
|
-
真实运行后读取输出:
|
|
49
|
-
|
|
50
|
-
```text
|
|
51
|
-
%USERPROFILE%\.multirunagent\<namespace>\results\
|
|
52
|
-
%USERPROFILE%\.multirunagent\<namespace>\memory\index.json
|
|
53
|
-
%USERPROFILE%\.multirunagent\<namespace>\runs\<runId>\
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
当 worker B 需要 worker A 的结论时,使用普通 `swam`/`swarm`;只有全部 worker 都彼此独立时才加 `--parallel-workers`。混合串行/并行阶段用方括号分组。Skill 仅指导 CLI 的用法;所有实际执行都由 CLI 完成。
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|