@agent_forge/forge-linux-arm64 1.42.2 → 1.44.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 +18 -9
- package/bin/forge +0 -0
- package/package.json +1 -1
package/bin/README.md
CHANGED
|
@@ -144,7 +144,7 @@ Forge 退出码三态(`BLOCKED` 硬阻断 / `ADVISORY` 软信号)即这一
|
|
|
144
144
|
每个开发任务自动走 3 道门禁:
|
|
145
145
|
|
|
146
146
|
```bash
|
|
147
|
-
forge task start --ref feat/add-login --branch --accept "go test -v ./... :: PASS" # 创建任务+分支+登记验收标准(--accept 可重复;Expected
|
|
147
|
+
forge task start --ref feat/add-login --branch --accept "go test -v ./... :: PASS" # 创建任务+分支+登记验收标准(--accept 可重复;Expected 是输出子串匹配;go test 带 Expected 忘加 -v 时 start 自动补——无 -v 无 PASS 行永不匹配)
|
|
148
148
|
forge task start --ref feat/add-login --scope "internal/auth/*.go" # 声明计划改动白名单(规划前置→可度量契约,advisory 检测 scope-drift)
|
|
149
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
150
|
forge task start --ref feat/hotfix --assignee kimi --ttl 24h # per-task TTL 覆盖全局 7d 僵尸窗口:短时效分派 24h 无活动即标僵尸(offered/claimed/input-required 通用;0=用全局默认)
|
|
@@ -231,7 +231,7 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
231
231
|
| `forge verify` | 项目完整性检查 + 回归测试 |
|
|
232
232
|
| `forge update [--plugin]` | 检查并更新到最新版本(按安装通道分流:npm 安装自动检测包管理器 npm/pnpm/yarn,查 npm registry 并打印对应更新命令——npm 包不可变,原地替换会被下次 install 还原,故不代下载,可用 `FORGE_NPM_REGISTRY` 覆盖 registry;GitHub Release/手动安装从 GitHub 下载自替换);加 `--plugin` 在更新后打印 plugin marketplace 重装指引(marketplace 镜像同步 hook 时建议重装) |
|
|
233
233
|
| `forge suggest decline/status/reset` | 管理 init-suggest hook 的项目 init 提示状态(decline 永久静默当前项目 / status 查看 / reset 清除重新提示) |
|
|
234
|
-
| `forge uninstall [--restore]` | 一键反装:剥除全部用户级 hooks(claude/codex/cursor/windsurf/opencode/kimi/reasonix/cline)+ 用户级指令段(CLAUDE.md/AGENTS.md/global_rules.md)+ forge-quality skill + 清 npm global `@agent_forge/forge` + 删 init-suggest 标记(默认 `~/.forge/.init-suggested/`,设 `FORGE_DATA_HOME` 时落该根下);`--restore` 把用户级文件回滚到 forge 修改前字节(备份在 `~/.forge/backups/`);plugin 卸载须在 agent CLI 内交互运行(不可脚本化) |
|
|
234
|
+
| `forge uninstall [--restore]` | 一键反装:剥除全部用户级 hooks(claude/codex/cursor/windsurf/opencode/kimi/reasonix/cline/codebuddy/zcode;dsh 无用户级 hook 文件可剥——其 translator 是刻意 no-op,卸载即移除 plugin)+ 用户级指令段(CLAUDE.md/AGENTS.md/global_rules.md)+ forge-quality skill + 清 npm global `@agent_forge/forge` + 删 init-suggest 标记(默认 `~/.forge/.init-suggested/`,设 `FORGE_DATA_HOME` 时落该根下);`--restore` 把用户级文件回滚到 forge 修改前字节(备份在 `~/.forge/backups/`);plugin 卸载须在 agent CLI 内交互运行(不可脚本化) |
|
|
235
235
|
| `forge migrate [--dry-run] [--force]` | 把旧 `.forge/` runtime state(tasks/gates/checklog/toollog/act/sessions/quarantine/active-task-ref 等)迁到用户级 DataDir(`~/.forge/projects/<key>/`)——升级到 runtime state 外迁版本后的迁移路径;未改过的 `.forge/protocol.yml` 由 autoSync 自动迁 DataDir,用户改过的保留为团队共享覆盖层;迁移的 task 文件落地即剥离外来门禁信号(review/验收/评分/完成/逃生舱/generic 须本机重挣,验收命令带外来标记);幂等,`--dry-run` 预览,`--force` 覆盖 DataDir 已有同名 |
|
|
236
236
|
| `forge registry prune` | 精简全局注册表 `~/.forge/projects.json`——移除项目目录已不存在的死路径与重复条目(项目移走/删除/测试残留),原子写回。registry.List 读时惰性精简但只在 `forge dashboard` 启动时触发(启 web 阻塞),本命令给不启 web 的主动清理入口 |
|
|
237
237
|
| `forge registry audit [--json]` | 只读一致性审计:key-drift(注册表 key ≠ 当前派生 key 且旧数据目录有载荷,提示 `forge project adopt` 迁移)/ orphan-datadir(数据目录有载荷但注册表无条目,备份壳除外)/ id-collision(两个路径派生同一 key——复制粘贴共享 `.forge-project-id` 的检出器)/ invalid-id(ID 文件格式非法,Key() fail-open 回落的唯一暴露面) |
|
|
@@ -242,6 +242,12 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
242
242
|
| `forge node show [--json]` | 显示本机节点身份(node-identity:多机器同步的机器归因地基):`node_id` = ed25519 公钥指纹(`fnode_<32hex>`,身份即公钥——验签即身份证明),密钥对存于用户级 `~/.forge/node.json`(私钥 0600,永不外泄也不进 bundle),`rotation_chain` 轮换证书链格式预留(v1 恒空);输出只含 node_id + 公钥,绝不打印私钥 |
|
|
243
243
|
| `forge project sync <init\|push\|pull\|status>` | 多机器持续同步(git 传输通道):`init <remote>` 绑定任意 git remote(固定 `forge-sync` 分支,免疫各机默认分支漂移);`push` 导出 bundle 到 `nodes/<node_id>/<key>/bundle.tar.gz` 并推送(每节点只写自己前缀,git 写权限即权限层;同时写 `.sig` 签名 sidecar);`pull` 拉取后经标准 `project import` 导入全部他机 bundle(账本幂等,重复 pull 免费;lineage 裁决信任;逐节点容错 + 节点目录形态校验);`status` 显示绑定与最近操作时间。机器本地绑定存 `DataDir/sync-remote.json`(allowlist 默认拒绝,不随 bundle 旅行),缓存仓库在 `~/.forge/sync-cache/` |
|
|
244
244
|
| `forge trust <list\|add\|remove\|require-signed>` | 节点信任 store(TOFU,node-identity §3):`add <node_id> <pubkey> [--label <备注>] [--profile personal\|team]` 带外核对指纹后登记对端(node_id 与公钥一致性强制校验);`require-signed on` 切团队档——bundle 必须带有效签名且签名者已登记,否则导入硬拒;签名无效(篡改/公钥不符)任何档位都硬拒。store 存 `~/.forge/trust.json`(0600,永不随 bundle 旅行) |
|
|
245
|
+
| `forge workspace create <name>` | 创建空多仓 workspace(用户级清单 `~/.forge/workspaces.json`,与 projects.json 平级;一组共同交付的 forge 项目 key 的逻辑分组,机器本地配置、不进 project sync bundle) |
|
|
246
|
+
| `forge workspace add <name> [--path <dir>]` | 把 repo 加入 workspace(默认当前项目,`--path` 指定他仓);成员按项目 key 引用(path 仅是展示缓存,漂移由 doctor 检出),同一 repo 允许属于多个 workspace |
|
|
247
|
+
| `forge workspace remove <name> [--path <dir>]` 或 `forge workspace remove <name> --key <key>` | 从 workspace 移除成员(默认当前项目);`--key` 逃生口:repo 已删/搬移无法按路径推导 key 时按存储 key 移除 |
|
|
248
|
+
| `forge workspace list [--json]` | 列出全部 workspace 及成员(key + 缓存路径) |
|
|
249
|
+
| `forge workspace status <name>` | 读侧聚合:按 key 扫描各成员仓活跃任务(ref/gate 进度/branch);单个成员坏了告警跳过,绝不让整视图空白 |
|
|
250
|
+
| `forge workspace doctor [--json]` | 检出清单 drift(全部 advisory 不阻断):成员 key 未注册 / 缓存路径缺失或与 registry 现路径分叉 / 一 key 属多个 workspace / 空 workspace / 跨仓任务依赖环(dep-cycle,点名完整 key:ref 环序列供人工摘边) |
|
|
245
251
|
|
|
246
252
|
</details>
|
|
247
253
|
|
|
@@ -250,15 +256,18 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
250
256
|
|
|
251
257
|
| 命令 | 说明 |
|
|
252
258
|
|------|------|
|
|
253
|
-
| `forge task start --ref <type/desc> --branch` |
|
|
259
|
+
| `forge task start --ref <type/desc> --branch` | 创建任务(自动创建分支);`--depends-on <ref>` 声明上游依赖(task-verify/task-complete 在上游交付前阻断),支持 `<key>:<ref>` 跨仓依赖——key 须为本 repo 所属 workspace 的成员(`forge workspace add`),缺失目标按保守 pending 处理 |
|
|
254
260
|
| `forge task status` | 查看当前任务门禁状态 |
|
|
255
261
|
| `forge task list` | 列出所有任务 |
|
|
256
262
|
| `forge task mine [--agent <agent>] [--role <role>] [--all-projects] [--blocked] [--json]` | 列出分派给当前/指定 agent 的任务(`--all-projects` 全仓扫描按项目分组;`--blocked` 仅被依赖阻塞的,标注卡在哪环 [status, gate 进度 passed/total]) |
|
|
257
263
|
| `forge task gate <gate-id>` | 验证单道任务门禁 |
|
|
258
|
-
| `forge task
|
|
259
|
-
| `forge task
|
|
264
|
+
| `forge task impact --level none\|multi [--repo <key>]... [--note <说明>] [--ref <ref>]` | 声明当前任务的跨仓影响(多仓 workspace 成员的 verify 前置,单仓改动也须显式声明):`--level none` 改动限定本仓;`--level multi --repo <key>` 波及指定成员 repo(`--repo` 可重复)。默认 advisory(未声明只提醒),protocol.yml 配 `cross_repo_impact: required` 升级为 HARD stop(四段式 WHAT/WHY/HOW/REF 报错),详见 docs/design/multi-repo-workspace.md |
|
|
265
|
+
| `forge task verify-acceptance [--ref <ref>] [--trust-foreign]` | 实跑验收标准(task start --accept 登记),记 deterministic 证据;验收命令来自 task import / .forge migrate(外来标记)时首跑须 `--trust-foreign`(人工审阅命令清单后显式受信,防外来命令串直接执行) |
|
|
266
|
+
| `forge task doc-review --passed <pass\|fail> --score <N> [--round <R>] [--reviewer <id>] [--critical <发现>]` | 记录 L2 文档回检证据(输出→回检循环):按 `code-review-gate/references/rubric-docs.md` 四维评审后落档(产出者不能自检);`--score` 为 0-100 总分、`--round` 轮次(≥3 轮未过升级人工确认)、`--critical` 落 Critical findings(未决阻断 complete)。task-complete 的 doc gate 消费该证据 |
|
|
267
|
+
| `forge docs lint [paths...] [--base <rev>]` | 文档产物 L1 确定性 lint(D1-D7:禁令短语/无证据结论/复述 diff/通过断言无证据/必填章节/结论枚举/篇幅);`--base` 改扫该基线以来变更的 .md。exit code:0=通过 2=硬失败。禁令清单单一真相源在 `internal/doclint`,同步渲染进 forge-quality skill |
|
|
268
|
+
| `forge task scope add <glob> [--ref <ref>]` | 追加计划改动文件到白名单(支持中途迭代;--ref 指定任务,不依赖活跃任务检测) |
|
|
260
269
|
| `forge task scope show` | 查看声明的白名单 + 实时 scope-drift(advisory,不阻塞) |
|
|
261
|
-
| `forge task override [--work-activity\|--test-coverage\|--acceptance-gate\|--skill-decisions] disable` | per-task 逃生舱:关闭指定门禁检查(如批量重构时关 read-before-edit);使用落 checklog 审计。验证类(test-coverage/acceptance-gate/skill-decisions)evidence 强度 cap 到 Weak(重证据任务按证据缩放豁免);work-activity
|
|
270
|
+
| `forge task override [--work-activity\|--test-coverage\|--acceptance-gate\|--skill-decisions\|--doc-gate] disable` | per-task 逃生舱:关闭指定门禁检查(如批量重构时关 read-before-edit);使用落 checklog 审计。验证类(test-coverage/acceptance-gate/skill-decisions/doc-gate)evidence 强度 cap 到 Weak(重证据任务按证据缩放豁免);work-activity 是节奏门禁,只审计不降强度。doc-gate 的放行须在 doc-review 轮次上限后经人工确认再走 |
|
|
262
271
|
| `forge task complete` | 标记任务完成(自动评分) |
|
|
263
272
|
| `forge task abort [--ref <ref>] [--cascade\|--detach-deps]` | 中止并删除任务(清理 ghost/卡住任务,不评分;存在反向依赖时默认仅提示,`--cascade` 递归中止所有依赖它的任务,`--detach-deps` 从依赖它的任务移除该依赖边) |
|
|
264
273
|
| `forge task score` | 查看任务质量评分 |
|
|
@@ -271,7 +280,7 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
271
280
|
| `forge task attach --ref --tool` | 锚定 session+工具到 task(跨工具多向锚定:pi 起、claude-code 接) |
|
|
272
281
|
| `forge task assign --ref <ref> --to <agent> [--role] [--by]` | 把任务分派给指定 agent(offered 起步,编排器侧;未知 agent 警告但接受) |
|
|
273
282
|
| `forge task claim --ref <ref> [--as <agent>]` | 工作方认领分派给自己的任务(offered→claimed,自动锚定 session) |
|
|
274
|
-
| `forge task deliver --ref <ref
|
|
283
|
+
| `forge task deliver --ref <ref> [--as <agent>]` | 工作方交付任务(claimed→delivered,交回编排器;--as 与 claim 对齐,与分派 agent 不符仅提醒不阻断) |
|
|
275
284
|
| `forge task question --ref <ref> --content <text>` | 工作方回抛问题(claimed→input-required,暂停等编排器/人答复) |
|
|
276
285
|
| `forge task answer --ref <ref> [--content <text>]` | 编排器答复回抛(input-required→claimed,答复记入 Decisions;空答复仅恢复 claimed) |
|
|
277
286
|
| `forge task fail --ref <ref> --reason <text>` | 工作方标记任务失败(claimed→failed,记录原因) |
|
|
@@ -291,7 +300,7 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
291
300
|
|
|
292
301
|
| 命令 | 说明 |
|
|
293
302
|
|------|------|
|
|
294
|
-
| `forge review pass` | 标记当前变更已通过 code-review-gate(task 模式写任务状态,否则写分支 stamp
|
|
303
|
+
| `forge review pass [--ref <ref>] [--note <文本>] [--acknowledge-changes]` | 标记当前变更已通过 code-review-gate(task 模式写任务状态,否则写分支 stamp);--note 审查结论文本记入 ReviewRound/stamp 与 checklog 审计留痕;距上次基线有源码变更时裸 pass 会被拒——须 --note 记复审结论,或 --acknowledge-changes 显式自我承担(记 WARN 级 self-refresh 审计) |
|
|
295
304
|
| `forge review gate` | 判定当前是否需要审查(Stop hook 调用;exit 0=放行,1=需审 block) |
|
|
296
305
|
| `forge review status` | 显示当前审查状态 |
|
|
297
306
|
|
|
@@ -351,7 +360,7 @@ Agent 无法通过 `node -e "fs.writeFileSync()"`、`cat > file`、直接编辑
|
|
|
351
360
|
| `forge skills mutex-record --from <file/->` | 回填一次互斥集 run(actual==Positive 才 pass;`--agent-model`/`--forge-version` 盖章防跨模型/版本假回归) |
|
|
352
361
|
| `forge skills mutex-report [--gate] [--json]` | 互斥集混淆矩阵(actual==Negative 为头号混淆行;`--gate` 任一混淆即 BLOCKED(stderr)+exit 4) |
|
|
353
362
|
| `forge skills analyze [--json]` | 弱点挖掘报告(只读):低分维度聚簇/验证盲区率/从未触发 skill/低成效 skill + 数据 caveat,供人选题 |
|
|
354
|
-
| `forge skills decide --prediction <p>` | 记录 skill
|
|
363
|
+
| `forge skills decide [<skill>] --diagnosis ... --prediction <p>` | 记录 skill 决策四元组(skill 名可用位置参数或 --skill;在带 skills/ 树的仓库内默认写仓库 canonical 而非 embed 缓存);`--prediction` 声明可检验预测(哪个可观测信号应改善),供验证闭环回扣 |
|
|
355
364
|
| `forge skills verify --skill X --decision <id> --result <r>` | 回填决策验证结果(预测→验证闭环第二步;`--at` 指定时间、`--history`/`--history-json` 查全量可证伪台账) |
|
|
356
365
|
| `forge skills revert --skill X --decision <id> [--edit] [--dry-run]` | Scoped revert:按 decisions.md 的 CommitHash 撤销某条决策关联的 commit(决策闭环的撤销臂) |
|
|
357
366
|
|
package/bin/forge
CHANGED
|
Binary file
|
package/package.json
CHANGED