@agent_forge/forge-linux-arm64 1.28.4 → 1.30.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/bin/README.md +29 -1
- package/bin/forge +0 -0
- package/package.json +1 -1
package/bin/README.md
CHANGED
|
@@ -126,6 +126,19 @@ AI 编码是一个循环:写代码 → 运行 → 读反馈 → 修正 → 再
|
|
|
126
126
|
|
|
127
127
|
换言之,coding agent 负责**跑循环**,Forge 负责**让每一轮循环产出可信、状态可追**。Forge 不 discovery、不规划需求——那些是循环前端的事;Forge 守的是循环的执行质量。
|
|
128
128
|
|
|
129
|
+
<details>
|
|
130
|
+
<summary><b>📖 为什么是确定性门禁,而不是让模型自检?</b></summary>
|
|
131
|
+
|
|
132
|
+
代码可执行(executable)是编码域相对研究/对话域的结构性优势——跑一遍 test / lint / compiler 拿到的退出码是**事实**,模型自评只是**概率判断**。Forge 的门禁尽量把判定交给确定性检查器,而非 LLM-as-judge:
|
|
133
|
+
|
|
134
|
+
- **Sonar AC/DC 两段式验证**:「a failing build is a fact; an opinion is a starting point」——LLM 审查作 advisory,deterministic build/test 作 hard gate。
|
|
135
|
+
- **Code-as-Harness 宣言**(arXiv:2605.18747):「termination should be governed by verification rather than by model confidence」——结束条件由验证决定,不由模型自信度决定。
|
|
136
|
+
- **反直觉但关键**:模型越强、自主循环越长,越需要非模型的客观检查兜底——产出越快,无人复核的代码就越多;门禁是把吞吐量从 liability 变回 leverage 的那一个组件。
|
|
137
|
+
|
|
138
|
+
Forge 退出码三态(`BLOCKED` 硬阻断 / `ADVISORY` 软信号)即这一思路的落地:LLM 判定走 advisory,deterministic 事实走 hard。机械可判的模式(cheat-scan / scope-drift / read-before-edit / verify-acceptance)优先抽成 deterministic 扫描器,LLM-reviewer 退到只做语义判断。
|
|
139
|
+
|
|
140
|
+
</details>
|
|
141
|
+
|
|
129
142
|
## 🔧 工作流程
|
|
130
143
|
|
|
131
144
|
每个开发任务自动走 3 道门禁:
|
|
@@ -133,6 +146,8 @@ AI 编码是一个循环:写代码 → 运行 → 读反馈 → 修正 → 再
|
|
|
133
146
|
```bash
|
|
134
147
|
forge task start --ref feat/add-login --branch --accept "go test ./... :: PASS" # 创建任务+分支+登记验收标准(--accept 可重复)
|
|
135
148
|
forge task start --ref feat/add-login --scope "internal/auth/*.go" # 声明计划改动白名单(规划前置→可度量契约,advisory 检测 scope-drift)
|
|
149
|
+
forge task start --ref feat/frontend --assignee kimi --role frontend --depends-on feat/api # 创建即分派给 kimi(offered),声明上游依赖 feat/api(DAG 环检测;task-verify/task-complete 在 feat/api 交付前阻断)
|
|
150
|
+
forge task start --ref feat/hotfix --assignee kimi --ttl 24h # per-task TTL 覆盖全局 7d 僵尸窗口:短时效分派 24h 无活动即标僵尸(offered/claimed/input-required 通用;0=用全局默认)
|
|
136
151
|
# AI 自动完成工作...
|
|
137
152
|
forge task gate task-implement # ✅ 代码实现(advisory:编译/断言提醒,agent 自检)
|
|
138
153
|
forge task verify-acceptance # ✅ 实跑验收标准,记 deterministic 证据(spec-as-gate)
|
|
@@ -225,12 +240,13 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
225
240
|
| `forge task start --ref <type/desc> --branch` | 创建任务(自动创建分支) |
|
|
226
241
|
| `forge task status` | 查看当前任务门禁状态 |
|
|
227
242
|
| `forge task list` | 列出所有任务 |
|
|
243
|
+
| `forge task mine [--agent <agent>] [--role <role>] [--all-projects] [--blocked] [--json]` | 列出分派给当前/指定 agent 的任务(`--all-projects` 全仓扫描按项目分组;`--blocked` 仅被依赖阻塞的,标注卡在哪环 [status, gate 进度 passed/total]) |
|
|
228
244
|
| `forge task gate <gate-id>` | 验证单道任务门禁 |
|
|
229
245
|
| `forge task verify-acceptance` | 实跑验收标准(task start --accept 登记),记 deterministic 证据 |
|
|
230
246
|
| `forge task scope add <glob>` | 追加计划改动文件到白名单(支持中途迭代) |
|
|
231
247
|
| `forge task scope show` | 查看声明的白名单 + 实时 scope-drift(advisory,不阻塞) |
|
|
232
248
|
| `forge task complete` | 标记任务完成(自动评分) |
|
|
233
|
-
| `forge task abort [--ref <ref>]` | 中止并删除任务(清理 ghost
|
|
249
|
+
| `forge task abort [--ref <ref>] [--cascade\|--detach-deps]` | 中止并删除任务(清理 ghost/卡住任务,不评分;存在反向依赖时默认仅提示,`--cascade` 递归中止所有依赖它的任务,`--detach-deps` 从依赖它的任务移除该依赖边) |
|
|
234
250
|
| `forge task score` | 查看任务质量评分 |
|
|
235
251
|
| `forge task resume [--ref <ref>]` | 拉回任务接续上下文(目标/计划/决策/阻塞/参与工具+门禁进度+git 已改),跨会话/跨工具秒级恢复 |
|
|
236
252
|
| `forge task context [--ref <ref>]` | 只读查看接续上下文(resume 的不改 state 别名) |
|
|
@@ -239,6 +255,18 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
239
255
|
| `forge task block --content/--resolve <id>` | 登记阻塞或解决阻塞(open→resolved) |
|
|
240
256
|
| `forge task finding --content/--resolve <id>` | 记录跨工具发现(带来源工具)或标 fixed |
|
|
241
257
|
| `forge task attach --ref --tool` | 锚定 session+工具到 task(跨工具多向锚定:pi 起、claude-code 接) |
|
|
258
|
+
| `forge task assign --ref <ref> --to <agent> [--role] [--by]` | 把任务分派给指定 agent(offered 起步,编排器侧;未知 agent 警告但接受) |
|
|
259
|
+
| `forge task claim --ref <ref> [--as <agent>]` | 工作方认领分派给自己的任务(offered→claimed,自动锚定 session) |
|
|
260
|
+
| `forge task deliver --ref <ref>` | 工作方交付任务(claimed→delivered,交回编排器) |
|
|
261
|
+
| `forge task question --ref <ref> --content <text>` | 工作方回抛问题(claimed→input-required,暂停等编排器/人答复) |
|
|
262
|
+
| `forge task answer --ref <ref> [--content <text>]` | 编排器答复回抛(input-required→claimed,答复记入 Decisions;空答复仅恢复 claimed) |
|
|
263
|
+
| `forge task fail --ref <ref> --reason <text>` | 工作方标记任务失败(claimed→failed,记录原因) |
|
|
264
|
+
| `forge task cancel --ref <ref> --reason <text>` | 编排器撤回分派(offered/claimed/input-required→canceled,记录原因) |
|
|
265
|
+
| `forge task reopen --ref <ref> --reason <text>` | 交付后重开(delivered→claimed,交付后发现 bug) |
|
|
266
|
+
| `forge task reclaim [--dry-run] [--json]` | 回收 claimed 僵尸任务(claimed>TTL 默认 7d 无 checklog 活动)回 offered、重置认领时钟(补齐设计 §3 TTL 回收触发;复用 task health 的 IsClaimedStale 同一真相源,故 health 报告与本命令目标永远一致)。回收保留 Agent 不变 → 只有原认领 agent 崩溃/重启后能重新认领;改派用 cancel+assign。`--dry-run` 只列出不改状态 |
|
|
267
|
+
| `forge task export --ref <ref> [-o\|--output file] [--include-checklog] [--redact]` | 把任务导出为跨机器 JSON Bundle(task state 存于用户级 DataDir 不随仓库走,跨机器交接需此载体;--include-checklog 附带证据链;--redact 抹除 issue/agent/commit/证据供对外分享) |
|
|
268
|
+
| `forge task import --file <bundle> [--force\|--merge]` | 从 Bundle 导入任务到本地(导入 session 标记幽灵仅溯源;默认同 ref 拒绝,--force 覆盖,--merge 按 ID 并集协作记录;含 checklog 则回放进本地 trace) |
|
|
269
|
+
| `forge task health [--json]` | 扫描全 project 上浮僵尸/死锁/长期未答复任务(只读告警,不改状态):offered>7d / claimed>TTL(无 checklog 活动)/ input-required>7d / abandoned_count≥2 标黄,DependsOn 指向 failed/canceled/缺失的死锁链与环主动报;与 mine/看板共享同一检测真相源 |
|
|
242
270
|
|
|
243
271
|
</details>
|
|
244
272
|
|
package/bin/forge
CHANGED
|
Binary file
|
package/package.json
CHANGED